- 締切済み
UTF-16のデコード方法
いつもお世話になっております。 Perlにて、以下のUTF-16の文字コードをデコードしたいのですが、 どのように記述すればデコード出来るのでしょうか? ※PerlのVerは5.8です。 (文字コード) %u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- zxcv0000
- ベストアンサー率56% (111/196)
> 莨第ュ「繝サ隗」邏・・蠕ゥ豢サ SJIS系の端末をお使いですね。 #!/usr/local/bin/perl use CGI("unescape"); binmode(STDOUT, ':encoding(Windows-31J)'); print unescape('%u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b'), "\n";
- tatsu99
- ベストアンサー率52% (391/751)
>以下のプログラムを実行して表示された結果が >莨第ュ「繝サ隗」邏・・蠕ゥ豢サ >莨第ュ「繝サ隗」邏・・蠕ゥ豢サ >でした。 実行した、環境(OSの名称) その環境の漢字コードの指定はどのようになっていますか。
- zxcv0000
- ベストアンサー率56% (111/196)
> 上記処理で実施しましたが、文字化けしました。 日本語文字を出力する際の基本は、ご存知なんでしょうか?
- zxcv0000
- ベストアンサー率56% (111/196)
use CGI("unescape"); print unescape('%u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b'), "\n"; で良いみたいですね。 "UTF-16の文字コード" と言うよりは、生のUnicode番号だと思いますが。
補足
上記処理で実施しましたが、文字化けしました。 何か良い方法はありますでしょうか?
- zxcv0000
- ベストアンサー率56% (111/196)
もっと良い方法があるかもですが、とりあえず...... use utf8; print "\x{4f11}\x{6b62}......\n"; STDOUT のコードは端末に合せてください。
補足
すみません。 日本語文字を出力する際の基本は分かっておりません。 以下のプログラムを実行して表示された結果が 莨第ュ「繝サ隗」邏・・蠕ゥ豢サ 莨第ュ「繝サ隗」邏・・蠕ゥ豢サ でした。 (プログラム) #!/usr/local/bin/perl use CGI("unescape"); $str= unescape('%u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b'); printf("%s\n", $str); print unescape('%u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b'), "\n";