狐の王国


2005年08月30日(火) [過去の今日]

#1 perlのlength()とUnicode

ハマったハマった。

Note the characters: if the EXPR is in Unicode, you will get the number of characters, not the number of bytes. To get the length in bytes, use "do { use bytes; length(EXPR) }", see bytes.

Unicodeと書いてあるが、たぶんこれは識別コードが付いた状態のことだろう。このコードが付いてるとバイト数ではなく文字数を帰す、と。

これだとバイト数を指定しなきゃいけない関数に渡すときに非常に困るので、

length(Encode::encode('utf8', $hoge));

みたいにしてやらないといけない。めんどースギ。これはバイト数だと思い込んで処理しちゃう関数側が悪いのかなあ。

(@433)

ちなみにハマった関数ってのは:

XML::LibXML::Text->replaceData() ってやつ。offset, length, stringを渡してやらないといけないのよね。replaceDataSTringは旧データを渡さなきゃいけないし、めんどいなあ。

(@439)

この記事のURI

最近の記事

以上、1 日分

タイトル一覧


カテゴリ分類
Powered by hns-2.19.8, HyperNikkiSystem Project

過去にこの日記が置いてあったcgi.misao.gr.jpは廃止されました。それによって記事へのURIが変わってしまっています。cgi.misao.gr.jpをwww.misao.gr.jpと置き換えるだけで同じ記事にアクセスできるはずです。

Sugano "狐志庵" Yoshihisa(E) @ 美紗緒ネットワーク <koshian@misao.gr.jp>
日記管理ページ