• 締切済み

UTF-16のデコード方法

いつもお世話になっております。 Perlにて、以下のUTF-16の文字コードをデコードしたいのですが、 どのように記述すればデコード出来るのでしょうか? ※PerlのVerは5.8です。 (文字コード) %u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b よろしくお願い致します。

みんなの回答

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.5

> 莨第ュ「繝サ隗」邏・・蠕ゥ豢サ 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)
回答No.4

>以下のプログラムを実行して表示された結果が >莨第ュ「繝サ隗」邏・・蠕ゥ豢サ >莨第ュ「繝サ隗」邏・・蠕ゥ豢サ >でした。 実行した、環境(OSの名称) その環境の漢字コードの指定はどのようになっていますか。

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.3

> 上記処理で実施しましたが、文字化けしました。 日本語文字を出力する際の基本は、ご存知なんでしょうか?

hanto123
質問者

補足

すみません。 日本語文字を出力する際の基本は分かっておりません。 以下のプログラムを実行して表示された結果が 莨第ュ「繝サ隗」邏・・蠕ゥ豢サ 莨第ュ「繝サ隗」邏・・蠕ゥ豢サ でした。 (プログラム) #!/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";

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

use CGI("unescape"); print unescape('%u4f11%u6b62%u30fb%u89e3%u7d04%u30fb%u5fa9%u6d3b'), "\n"; で良いみたいですね。 "UTF-16の文字コード" と言うよりは、生のUnicode番号だと思いますが。

hanto123
質問者

補足

上記処理で実施しましたが、文字化けしました。 何か良い方法はありますでしょうか?

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

もっと良い方法があるかもですが、とりあえず...... use utf8; print "\x{4f11}\x{6b62}......\n"; STDOUT のコードは端末に合せてください。

関連するQ&A