Jestem trochę zdezorientowany. W Pythonie jaka jest różnica między łańcuchem binarnym, łańcuchem bajtowym, łańcuchem unicode i zwykłym starym łańcuchem (str)? Używam Pythona 2.6.Różnica między ciągiem binarnym, ciągiem bajtowym, ciągiem unicode i zwykłym ciągiem znaków (str)
Odpowiedz
To zależy od wersji na Pythonie, którego używasz.
W języku Python 2.x jeśli napiszesz 'abc'
ma on typ str
, ale oznacza to ciąg bajtów. Jeśli chcesz ciąg znaków Unicode, musisz napisać: u'abc'
.
W języku Python 3.x, jeśli napiszesz 'abc'
, nadal ma on typ str
, ale teraz oznacza to, że jest ciągiem znaków Unicode. Jeśli chcesz ciąg bajtów, musisz napisać b'abc'
. Nie wolno pisać u'abc'
.
| 2.x | 3.x
--------+--------------------------+-----------------------
Bytes | 'abc' <type 'str'> | b'abc' <type 'bytes'>
Unicode | u'abc' <type 'unicode'> | 'abc' <type 'str'>
Dzięki za to. Po prostu rozumiem poprawnie, zasadniczo różnica między ciągiem bajtowym i zwykłym ciągiem jest to, że ciąg bajtowy nie może zawierać znaków Unicode? –
@Imran Azad: Możesz traktować ciąg bajtów jako uporządkowaną listę bajtów - to liczby całkowite od 0 do 255 włącznie. Ciąg znaków Unicode to uporządkowana lista znaków Unicode (liter, cyfr, znaków interpunkcyjnych, małych bałwanów (☃) itd.). Zamieszanie myślę, że pochodzi z Python 2.x traktując ciągi bajtowe, jakby były ciągi znaków. To prawie działa, z wyjątkiem sytuacji, gdy zaczynasz używać znaków spoza zakresu ASCII, masz problemy. –
Ah Widzę, dzięki. –
- 1. Różnica między ciągiem odczytywanie a ciągiem znaków w Clojure
- 2. jaka jest różnica między ciągiem znaków [] a ciągiem znaków w języku golang?
- 3. Różnica między zadeklarowanym ciągiem a przydzielonym łańcuchem
- 4. W PHP, co jest ciągiem binarnym (b'xxxx ')?
- 5. Jaka jest różnica między ciągiem znaków w kodzie źródłowym a ciągiem odczytanym z pliku?
- 6. Usuń prefiks z ciągiem
- 7. Różnica między ciągiem a tekstem w szynach?
- 8. Różnica między przechowywaniem ObjectId a jego ciągiem znaków w MongoDB
- 9. tworzenia słownika z ciągiem
- 10. konwersja z podwójnym ciągiem znaków i lokalizacja
- 11. Wyrażenie regularne - rozpoczęcie i zakończenie ciągiem znaków
- 12. Problem z manipulowaniem ciągiem znaków C#
- 13. trymowania specyfika z ciągiem
- 14. SQLCmd z ciągiem połączenia
- 15. Usunąć końcowe "?" z ciągiem
- 16. Optymalizacja manipulacji ciągiem F #
- 17. GSON problem z ciągiem
- 18. jQuery .each() z ciągiem
- 19. tłumaczyć pustym ciągiem
- 20. Oczekiwano identyfikatora przed ciągiem stałym
- 21. Różnica między typem danych "Tekst" i "Ciągiem" w SQLite
- 22. Różnica między ciągiem do rysowania i rysowania-mdpi
- 23. Numery dopasowań nie są poprzedzone ciągiem znaków
- 24. jak wykryć, czy zmienna jest ciągiem znaków
- 25. UrlFetch z niestandardowym ciągiem znaków użytkownika?
- 26. Klasyczne pytania dotyczące manipulowania ciągiem znaków?
- 27. usuwania początku przecinek z ciągiem
- 28. Błąd niezgodności typu między java.lang.String a ciągiem
- 29. Manipulacja ciągiem lub funkcja rekursywna?
- 30. Tworzenie instancji klasy PHP z ciągiem
Należy określić, czy używasz Pythona 2 czy Pythona 3, ponieważ ma to ogromne znaczenie. –
Którą wersję Pythona używasz? I gdzie spotkałeś się z terminem "ciąg binarny" w kontekście Pythona? –
@JohnY Zaktualizowałem pytanie. –