私は日前Unicodeの痛みの記事について慎重に読み、時間前にこの質問をした:なぜ私は任意のUnicode文字で変数を直接宣言できるので、PythonはUnicode型を必要としますか?
Do I have to encode unicode variable before write to file?
しかし、最近の奇妙な質問は私の心に入って来ました。
私はこれらのコードは正常に動作していることが分かった:私は両方PY2とPY3に任意のUnicode文字を直接変数を宣言することができるので、
chinese = ['中文', '你好'] # py2, these are bytes, type is str
with open('filename', 'wb') as f:
f.writelines(chinese)
のpython(または私たちを)何Unicodeの種類関与を取得?プログラム全体を通してstr(py2)とbytes(py3)型を使用することはできませんか?その後、いわゆるユニコードの痛みは存在しません。
誰かから洞察をいただけますか?私は、任意のUnicode文字を直接変数を宣言することができますので
はい。それは文字列の操作について私が考えてきたものです。しかし私は、私が知らない他の理由があるかどうかを知りたいだけです。 「実際に価値があるものを何かしようとすると、たとえば、スライス、下付き文字、長さを取ると、すべてが故障します。 "ユニコートの痛み"の原因ですか? – Tianqing
テキストはテキストで、バイトはバイトです。バイトでしか作業したくないのであれば問題ありませんが、テキストを扱っているとふり返ったりしないでください。 –