文字列内の’\’にまつわること

文字列の中で「\」を扱うのは面倒。

今回間違えたこと。

Windowsパス名の区切りを「\」から「/」に変換

スクリプトの引数にWindowsのパスを指定して、それをsys.argvで取得した場合、その中は「\」がエスケープされて「\\」となっているので、そのまま使う分には困らない。

「\」の扱いが面倒だらと、パスの区切りを「/」に書き換えておくならばこう書くこと。

runpath = path.replace('\\', '/')

日本語をUnicodeにエンコードしたバイト列を表したUTF-8

Python内で使っていたUTF-8の日本語は、外部(ファイルやhttpなど)に出すときにエンコードされてしまう。

本来は、どうエンコードされるかを理解して、それに適切なデコード処理をしてあげればいいのだが、
それを自分のロジック内で制御するために、Unicodeにエンコードして、そのバイト列をUTF-8で表した形で流通させて、使う側が逆にエンコード・デコードして元の日本語に戻すやりかたを使っている。

Unicodeを表したUTF-8文字列が上記のように変数に入ったままなら問題ないのだが、直接表記する場合は「\」の対処が必要。

何もしないと、正しくデコードできない。

row文字列として扱えばOK。

タイトルとURLをコピーしました