我有一個Unicode字符串 - 在Python 2.7下。爲lzma壓縮編碼一個unicode字符串
我今天也很頭疼 - 一個並非由Unicode引起的真正問題 - 並且無法像我所需要的那樣把重點放在問題上。在花粉計數下降之前,我比思想家更無腦無力。
我需要使用backports.lzma
來壓縮我的「字符串」。偶爾我會得到一個錯誤,因爲'string'不是一個兼容ASCII的String
,而是一個Unicode
對象,它使用了一些當前未知的字符集(可能是UTF-8但不能保證)。 lzma.compress
想要一個String
或bytes()
兼容對象。
在我的代碼中,我不一定有unicode的字符編碼。我只知道這是一個unicode對象。通常在類似的情況下,我知道編碼並可以適當地採取行動。我通常也不關心在轉碼中丟失一兩個字符。這一次我很在乎。
這使我幾個問題:
•有沒有一種安全的編碼選擇,也將在一定程度上尺寸最小的(對於大多數UTF-8文檔的)?
•我是否需要擔心解碼的向後兼容性與我壓縮的早期文檔?我沒有完全閱讀lzma
文檔(我的壞),並沒有意識到它需要String
。
謝謝。我知道UTF8超過了ASCII碼,但是擔心如果我需要選擇其他編碼來確保一切都可以通過。順便說一句,你的答案簡潔令人難以置信的完美。 –
按照定義,所有UTF編碼都可以編碼所有Unicode字符。在編碼ASCII文本時,UTF-8是最不浪費的。 –