我通過php生成一個csv文件,通過瀏覽器下載。 我是否需要在開始時插入字節順序標記字節,考慮使用的目標系統可能是mac,unix,windows等?這裏需要字節順序標記嗎?
1
A
回答
2
不,你不需要。
字節順序標記用於某些Unicode編碼,即UTF-8,UTF-16和UTF-32,以確定編碼實際上是Unicode編碼。
在UTF-16中,它用於區分UTF-16和UCS-2(UTF-16的子集)。
它在UTF-8和UTF-32中是可選的,但是是有效的。但是,在UTF-8中,它可能會導致兼容性問題。引述a well-phrased Wikipedia entry:
如果與現有 程序的兼容性並不重要,BOM 可以用來標識文件是否爲UTF-8與遺留編碼 ,但 這仍然是有問題的,因爲很多 添加了BOM的實例或刪除了 但未實際更改 編碼或各種編碼將 連接在一起。檢查 文本是否有效UTF-8比使用BOM更可靠 。
由於這些原因,我會反對在UTF-8中使用BOM。
0
關於原始問題,它真的取決於文件在編寫時的編碼方式。如果它是utf-8編碼,我會添加BOM。如果文件中只有ASCII字符,則BOM可能不存在,因爲沒有序列。但是,如果utf-8序列位於文件中,則可以更輕鬆地檢測BOM以遍歷整個文件並檢查有效序列。即使您檢測到單個序列,它仍然可能是0x7F以上的單個字符。
相關問題
- 1. 這裏需要揮發嗎?
- 2. 這裏需要Cloneable嗎?
- 3. 這裏需要$ timeout嗎?
- 4. 這裏需要Zend_Form_Element_Image嗎?
- 5. 這裏需要「原子」嗎?
- 6. 這裏需要同步嗎?
- 7. ICU字節順序標記(BOM)
- 8. saxparser忽略字節順序標記
- 9. StreamWriter和UTF-8字節順序標記
- 10. 字節順序標記問題
- 11. Ruby:檢查字節順序標記
- 12. UTF-8中沒有字節順序標記的JSON提要
- 13. 需要順序爲A1 A2 Postgres裏
- 14. javascript的承諾,在這裏需要嗎?
- 15. 這裏需要os.path.join(dir,filename)嗎?
- 16. 這裏需要一個哈希表嗎?
- 17. 我需要在這裏重建Java嗎?
- 18. 在這裏需要`std :: move`嗎?
- 19. 我需要在這裏擁有@property嗎?
- 20. 是否需要轉換字符串的字節順序?
- 21. 反向字節順序登記
- 22. Python etree XSLT需要標記輸出嗎?
- 23. 轉換字節數組的文本將字節順序標記檢測
- 24. Android:真的需要2個字節嗎?
- 25. 檢測到UTF-16(LE)字節順序標記
- 26. 忽略用C字節順序標記++,從流
- 27. 錯誤FTK1013:找不到Unicode字節順序標記
- 28. 問題與XDocument和BOM(字節順序標記)
- 29. 使用JavaScript RegEx匹配字節順序標記(BOM)
- 30. 設置字節順序標記在WebTest的在VS2010
Unicode標準明確指出,對於UTF-8,BOM既不是必需的,也不是推薦的**。 – tchrist 2011-02-16 03:14:32