
質問タイトルのままですが、16進数の文字列変換について非常に困っています。
皆さんのお知恵をお貸しいただけないでしょうか。
サーバ間のメッセージのやり取りで、受信側にて16進数となっているデータをテキストに変換をしています。
送信側文字コードがUTF-8の場合は、以下のコマンドで問題なく変換できています。
(コマンド例)
コマンド:echo -n 'e3 81 93 e3 82 93 e3 81 ab e3 81 a1 e3 81 af' |xxd -r -p
実行結果:こんにちは
ところが送信元文字コードがsjisの場合、文字化けしてしまいます。
(コマンド例)
コマンド:echo -n '82 b1 82 f1 82 c9 82 bf 82 cd' |xxd -r -p
実行結果:ア・ソヘ
この場合、まずは、sjisのテキストにデコードした後に、UTF-8に変換するのかなと考えていますが、
どのようにしたら良いかわかりません。
どなたかご教授願えないでしょうか。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
Shift_JISの文字列としては正しく変換できています。
どうすればいいかは、あなたがどうしたいか、によります。
端末に表示したいだけなら、xxd で16進→バイナリ(実態はShift_JIS)に変換したものを、 nkf 等でUTF-8に変換となります。
ですが、ExcelのようなShift_JISを期待するアプリで使うなら、Shift_JISのまま扱うのが便利です。
ご回答ありがとうございます。
UTF-8に変換した結果をDBに登録したいので、
Shift_JISのままではなく、nkfを使用して文字コード変換してみようと思います。
No.2
- 回答日時:
ちょっと状況がよく分かりませんね。
「実行結果」というのはどういう経路で表示されたものですか?
見たところ、「82」がどこかで落ちているような結果です。
最終的に表示されているのはb1→アなどを見るにShift_JISのようですが、
どこかで正しくない文字コードで解釈されて不正なバイト列が消されているのかなと感じます。
(ところでこのサイトはいつの間にか半角カナを使えるようになったんですね)
ご回答ありがとうございました。
せっかくご回答いただいたのに、遅くなり大変申し訳ありませんでした。
結論としては、xxdコマンドを実行した結果をinputにして、nkfでShift_JISに変換をかけて想定通りの結果となりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- UNIX・Linux JSLinuxのコマンドについて。 abの小文字aを大文字Aに置換して標準出力するコマンドを1行で示 1 2022/07/25 18:34
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
shutdownコマンドをキャンセル...
-
UNIX コマンドにおける # や円...
-
至急です、Ubuntuに詳しい方助...
-
テキストファイルのn行目以下を...
-
DOSコマンドについて
-
macのメモ帳について
-
ワイルドカードを使ってでフォ...
-
Excel下部のメニューが消えた
-
igorでウェーブのポイント数を...
-
Photoshopでコマンドが効かない!
-
garage bandのリージョン結合の...
-
AIX/HP-UXでパスワード変更シ...
-
直前に打ったコマンドの引数だ...
-
【シェル】時刻の取得について
-
cd-romドライブを閉じる コマ...
-
JP1での保留Job一覧取得につき...
-
コマンドプロンプトにおけるコ...
-
コマンドプロンプトでデスクト...
-
コマンドプロンプトで変数内に...
-
VMでCentOSを動かしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
Excel下部のメニューが消えた
-
至急です、Ubuntuに詳しい方助...
-
「環境変数名の編集」ウィンド...
-
SCコマンドでアクセス拒否
-
shutdownコマンドをキャンセル...
-
コマンドプロンプトにおけるコ...
-
ワイルドカードを使ってでフォ...
-
Linuxコマンドは何の言語で書か...
-
[バッチファイル]レジストリ値...
-
アクセスのボタンから指定のワ...
-
echo $!の意味を教えてください
-
AIXでの文字コード、改行コード...
-
DOSコマンドについて
-
Linuxでコマンドが終了しない
-
compressコマンドってなくなっ...
-
JP1での保留Job一覧取得につき...
-
Linux:sedコマンドで置換がし...
-
コマンド履歴が~/.bash_history...
-
vbaで「最前面に」とする方法は?
おすすめ情報