質問: "山﨑\n"; Jcode::convert(\$string,'euc','utf8'); print $string; ``` このプログラムをサーバー上で実行すると、機種依存文字の「﨑」が文字化けをし、 「?」となって出力されてしまいます。 (当方、SSHクライアントはTeraTermを利用していますが、「設定>端末」から 漢字-受信をEUCにして、結果を確認しています。) 通常の機種依存ではない漢字などは、問題なく変換できるのですが、 機種依存文字だけが、文字化けを引き起こしてしまいます。 ### ★ 質問したいこと 前述のような、UTF8の機種依存文字を、文字化けさせずにEUCに変換する方法を教えていただきたいです。 可能であれば、具体的なソースコードを提示して頂けると大変参考になります。 そもそもJcodeを使った方法で、機種依存文字をUTF8からEUCに変換することはできるのでしょうか?もし出来ないのであれば、代替案を教えて頂けますと助かります。 なにか足りない情報等あれば、その旨をお伝え頂けると幸いです。 どうぞ、よろしくお願い致します。
回答: 回答頂いた方、ありがとうございます。 思案していたところ、自己解決しました。 Jcodeではなく、Unicode::Japaneseを利用したらうまくいきました。 ``` use strict; use Jcode; use Unicode::Japanese; my $string = "山﨑\n"; $string = Unicode::Japanese->new($string)->euc; print $string; ``` とりあえずは問題ないので、一旦質問は閉じさせていただきます。 ただ、文字コード周りは自分が思っている以上にやこしそうですので、 今後しっかり理解していく必要がありそうです。 ("とりあえず"の理解では後々問題起きそうですし・・) ありがとうございました。