例えば「レポート」という文字列をユニコードで扱うときに, 文字「ポ」が「ホ + ゜」 というように,文字と濁点・半濁点に分かれてしまう場合
Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ
mb_strlen()関数は、日本語などのマルチバイト文字列の文字数をカウントする関数ですが、気をつけて使わないと思わぬバグの原因になってしまうことがあります。 <?php $str = '日本語にほんご'; var_dump(mb_strlen($str)); ?> このスクリプトを実行すると、多くの場合は int(7) と、正しい結果が表示されますが、環境によっては int(12)やint(9)など、変な値が表示されてしまう場合があります。 これは、PHPの内部エンコーディングが文字列のエンコードと異なっている時に 起こります。 <?php $str = '日本語にほんご'; var_dump(mb_strlen($str, 'SJIS')); ?> というように、mb_strlen()関数の第2引数に$strの文字エンコードを指定す ると、PHPの内部エンコーディング設定に関わらず正
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く