• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SJIS→UTF-8の文字コード変換)

SJIS→UTF-8の文字コード変換の方法とエラー対処法

このQ&Aのポイント
  • Perlを使用して、SJISの16進で表記された文字をUTF-8に変換する方法について説明します。
  • Unicodeの16進文字コードを使用して表示する際にエラーが発生する場合の対処法も紹介します。
  • SJISとUnicodeの句点の表示方法には違いがあり、エラーが発生することがあるため、変換方法について注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

use encoding "Shift_JIS"; use Encode; $a = chr(0x81).chr(0x42); $a = decode("Shift_JIS", $a); printf("句点の表示…%s\n",$a); printf("句点の表示…%c\n",0x3002);

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • vsba23895
  • ベストアンサー率58% (18/31)
回答No.4

失礼、下記の間違い。 $a= pack("H*",'8142');

すると、全ての回答が全文表示されます。
  • vsba23895
  • ベストアンサー率58% (18/31)
回答No.3

>$a = 0x8142; 意図は分りますが、perl でなら、 $a= unpack("H*",'8142'); これで、他はそのままで動くでしょう。

すると、全ての回答が全文表示されます。
  • SHOO-3
  • ベストアンサー率56% (28/50)
回答No.1

質問の要領を得ませんが、一応回答。 $a = 0x8142; # 数値0x8142をShiftJisのマルチバイト文字「。」(0x81, 0x42)にする $a = pack("C2", $a>>8, $a&0xff); # マルチバイト文字「。」(0x81, 0x42)をワイドキャラクター「。」(\x{3002})にする use Encode; $a = Encode::decode("shiftjis", $a); こんなかんじかな?どういった出力を得たいのかが不明瞭なので、勝手に解釈して返答させていただきます。

すると、全ての回答が全文表示されます。

専門家に質問してみよう