我在做數學,如果我將二進制表示(二進制模式下的二進制文件)中的每一點信息(變量的內容)保持在1字節或者等於1字節,我是安全的,無論是什麼endianess在平臺上實現,這意味着ASCII字符集根據定義是端到端安全的還是雙端的,因爲它提供了2^8個排列? 我想UTF-8並不是雙端的。是ASCII字符集endian-safe?
回答
字節順序是指字節順序,即多字節順序的字節出現的順序。
對於ASCII而言,由於沒有多字節序列,因此它是沒有意義的。
對於UTF-8,UTF-8標準已經準確無誤地定義了所有多字節序列中的字節順序。因此需要額外的規則(如big-endian或little-endian)來指定或澄清此訂單。所以......也不適用。
所以UTF8是安全的,不管是什麼?和UTF-16? – user2384250
UTF-16使用固定大小(16位)的多字節代碼單元,因此如果適用,則使用字節序的概念。令人遺憾的是,Unicode協會選擇不強制標準的一個字節序或另一個序列字,因此我們剩下兩個UTF-16「變體」。這就是爲什麼[儘可能避免使用UTF-16]的原因之一(http://programmers.stackexchange.com/questions/102205/should-utf-16-be-considered-harmful)。 – Celada
應該避免的另一個主要原因是它是「兩全其美」編碼:它是一種可變長度編碼(不像UTF-32/UCS-4,當你需要固定長度的代碼單元時,你應該使用它) )和ASCII不兼容(不像UTF-8,你應該在幾乎所有其他情況下使用它)。 – Celada
- 1. 字符集不是ASCII的超集
- 2. 獲取ascii字符集ascii字符集在servlet中
- 3. Oracle ASCII字符集 - .Net擴展
- 4. ASCII字符串到asciiz(程序集8086)
- 5. ASCII到XML的字符集轉換
- 6. html_entity_decode():字符集'ASCII」不支持
- 7. 獲取美國ASCII字符集 - Python
- 8. 操縱Unicode和ASCII字符集在C#
- 9. 的NSXMLParser,問題與ASCII字符集
- 10. ASCII字符Binder
- 11. ASCII字符,HOWTO
- 12. ASCII碼字符
- 13. ASCII空字符
- 14. char literal的字符集是否保證爲ASCII?
- 15. 反轉包含ASCII字符和非ASCII字符的字符串
- 16. 匹配如果字符串只包含ASCII字符集
- 17. ASCII - (編碼)字符集或字符編碼
- 18. 字符串的SHA1是否總是返回ASCII字符?
- 19. ascii字符255是隱形字符還是空格?
- 20. 顯示ASCII字符
- 21. FWRITE非ASCII字符
- 22. php - echo ascii字符?
- 23. ASCII碼=>字符
- 24. 顯示ASCII字符
- 25. wxStyledTextCtrl非ASCII字符
- 26. MD5與ASCII字符
- 27. ActionMailer非ASCII字符
- 28. Python非ASCII字符
- 29. 隱形字符 - ASCII
- 30. 打印ASCII字符
Endianness沒有爲一個字節定義。而UTF-8既可以是小碼也可以是大碼(就像任何其他Unicode編碼一樣)。 – 2013-05-31 09:15:33
你對utf-8是什麼感到困惑。 utf-8編碼的字符串是一個字節序列,不受字節序的影響。 http://en.wikipedia.org/wiki/UTF-8 –
@ H2CO3 ** CAN **可以,但我的觀點是安全的,如果我有一個ASCII字符我可以假設字符總是被正確地重現,用UTF8我應該關心那個UTF字符集的實現。 – user2384250