閱讀JSON :: XS文檔後,我有點困惑。我的問題是:我如何編碼/解碼已經在UTF8中的數據?調用encode_json似乎會對它們進行雙重編碼。我想從包含UTF8編碼字符串的散列中創建JSON,並在保留數據UTF8編碼的同時將JSON解碼爲散列。是否有可能,還是我需要手動編碼:: decode_utf8/encode_utf8數據我自己?Perl使用JSON序列化UTF8編碼數據
1
A
回答
1
UTF8標誌禁用
當UTF8被禁用(默認值),則編碼/解碼產生與期望Unicode字符串,即,具有高的序 Unicode字符值(> 255)將被編碼爲這樣的字符,並且 類似地這樣的字符被解碼爲原樣,除了「將(重新)解釋爲Unicode碼點或Unicode 個字符(對Perl來說,這些字符串在 中是一樣的,除非你搞笑/怪異/愚蠢的東西)。
此當你想要做你自己的編碼是有用的(例如,當你想有UTF-16編碼JSON文本)或當一些其他 層確實編碼爲你(例如,打印到 終端時使用透明地編碼爲UTF-8的文件句柄,你當然不希望UTF-8首先編碼你的數據,並讓Perl 再編碼一次)。
UTF8標誌被允許
如果啓用UTF8標誌,編碼/解碼將使用相應的UTF-8多字節序列編碼的所有字符,並且將 期望你的輸入字符串,以被編碼爲UTF-8,即沒有 輸入字符串的「字符」必須具有> 255的任何值,因爲UTF-8 不允許這樣做。
因此,utf8標誌在兩種模式之間切換:disabled表示您將在Perl中獲得Unicode字符串,enabled表示您在Perl中獲得UTF-8 編碼的八位字節/二進制字符串。
相關問題
- 1. 用JSON序列化base64編碼數據
- 2. 使用perl bug編寫utf8?
- 3. Rails編輯序列化的JSON數據
- 4. 使用Gson反序列化JSON數據
- 5. JSON字符編碼vs utf8
- 6. 修改將在Perl中使用JSON編碼的數據結構
- 7. 反序列化JSON數據
- 8. 編碼JSON序列化爲URL
- 9. 解析/編碼JSON而無需反序列化/序列化類
- 10. Perl編碼 - 將文件保存到UTF8
- 11. 從json編碼/解碼中使用變量創建散列perl
- 12. Rapidjson根本不編碼utf8序列
- 13. perl utf8從iso-8859-1編碼返回不同的結果到javascript utf8編碼
- 14. 編碼/序列化JSON語法與解碼/解串JSON語法
- 15. 用C反序列化JSON數據#
- 16. 如何在Perl中使用BOM編碼檢測UTF8
- 17. 爲什麼我的Perl測試失敗,使用編碼'utf8'`?
- 18. 如何編碼(序列化)和解碼(反序列化)AMF數據包?
- 19. 從Rails應用程序編碼UTF8數據到Mysql的問題
- 20. 修復數據庫編碼爲UTF8
- 21. UTF8編碼base64string和存儲數據庫
- 22. 如何序列化和反序列化數據到Perl數據庫?
- 23. 使用c序列化JSON#
- 24. 使用utf8 html編碼和latin1數據庫的Rails應用程序(ruby 1.8.7)
- 25. PHP,PDO,SLIM框架,JSON編碼UTF8
- 26. json in perl反序列化長度計數不起作用
- 27. PHP解碼數據JSON /系列化
- 28. 使用latin1字符集編碼UTF8數據
- 29. 我如何編碼一個UUID,使其JSON可序列化
- 30. Php/json:解碼utf8?
http://stackoverflow.com/help/how-to-ask –
你的字符串是UTF-8編碼還是隻包含Unicode字符? –
已經以UTF-8編碼 – Davs