COREBlog
owa
#e8faefa
2003年12月26日22:51
わざわざありがとうございます。ほとんど C 言語なので恥ずかしい限りです。本当は Python らしく書きたかったのですが。
s = unicode('あいう',"japanese.euc-jp").encode('utf-8')
print len(s)
print len(s[:1])
print len(s[:2])
...
などと試してみましたが、9, 1, 2,... と出力されてしまいました。メソッド等探したり、コーディングの文字コード自体を変更したりしてみましたが、うまくスライスできる機能が見付かりませんでした。
良い機会なので、ちと勉強してみようと思っています。
拝見しました(ざっとですが)
UTF-8を任意文字数で切り詰める処理,ちゃんと動かないのは認識しているのですが,そのままになっている部分です
Pythonの場合,Unicode Stringにすればスライスを使うとちゃんとマルチバイトの境目をまたがない形で処理してくれるので,そのようにするのが正しいのではないかと思っています
EUC-JPやS-JISのマルチバイト文字列と,Unicode文字列をlenなどで比べてみると分かります