log

mysql perl 文字化け Encode JSON::XS

UTF8のDBからデータ取ってきて、別のDBに入れるperlプログラムを書いてたけど、 どうしても、別のDBに入れるときに文字化けしてしまう。

どうも取ってきた文字列でUTF8のフラグが立っていないのが問題だった。

下記のコードで解決できた。

my $utf8 = Encode::is_utf8($bytes) ? $bytes : decode_utf8($bytes);

Encode::decode_utf8()であってもis_utf8()を使うべき理由 - それ、Gentooだとどうなる? http://d.hatena.ne.jp/tmatsuu/20090914/1252928191

その他参考リンク

[Perl] JSON モジュールの utf8 フラグ周りの仕様 tips 注意点 Kawanet Tech Blog/ウェブリブログ http://kawa.at.webry.info/200801/article_6.html

utf8だよとかじゃないよとかいいつつ 正規の作法にのっとりながらもMySQLの策略によりselectとかの結果が??に変わってしまうとかしまわないとかいいながら正月を迎えたですよ? - re_その辺の空気とか http://d.hatena.ne.jp/re_niladmirari/20100101/1262300591

[Perl] JSON モジュールの utf8 フラグ周りの仕様 tips 注意点 Kawanet Tech Blog/ウェブリブログ http://kawa.at.webry.info/200801/article_6.html

Perl5.8でUTF-8のメモ/楽 http://tech.bayashi.jp/archives/entry/perl/2008/002104.html

Perlによる日本語コード変換のメモ(第二版) http://hikoboshi.org/perl/utf8.html

UTF8 フラグあれこれ - daily dayflower http://d.hatena.ne.jp/dayflower/20080219/1203493616

perlのUTF8フラグの扱い方がやっとわかってきたので、まとめ。 - あそことは別のはらっぱ。 http://d.hatena.ne.jp/shidho/20090406/p1

文字列を print すると「Wide character in print at」と出力されて困った - 英語とプログラミング気まぐれ日記 http://d.hatena.ne.jp/BigFatCat/20080120/1200825243

Perl 5.8.x Unicode関連 http://www.rwds.net/kuroita/program/Perl_unicode.html#use_utf8


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-12-09 (金) 22:41:56 (2745d)