JISコードの日本語を含む文字列を、文字コードの数値に変換する方法がわからなくて困っています。とりあえずは文字列ではなく、1文字だけ変換することを目指してord関数を使ったんですが、1バイト文字はうまくいったのですが、2バイト文字だと思うような結果になりませんでした。
例)以下のように変換したいです。
「a」→「97」
「あ」→「9250」
どなたかいい方法や関数をご存じないでしょうか?
ちなみに下記のように片っ端から試してみたのですが、思うような結果が得られませんでした。
$buf = mb_convert_encoding($_POST["string"], "JIS", "EUC-JP");
$jis_code1 = ord("$buf");
$jis_code2 = bin2hex("$buf");
$jis_code3 = urlencode("$buf");
$jis_code4 = intval("$buf");
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
バイト単位で処理すればいいのでは?どういう表示にしたいのかイマイチわかりませんが、例えばこんな感じで・・
$buf = mb_convert_encoding($string, "JIS", "EUC-JP");
$dest = '';
for ($i = 0; $i < strlen($buf); $i++) {
$w = substr($buf, $i, 1);
$w = bin2hex($w); // 「表示したい編集方法」に合わせて書き替え
$dest .= $w;
}
print $dest;
回答ありがとうございます。
質問の仕方が悪かったです。すみません。
JIS文字列を10進数のJISコードに変換し表示する方法でした。
お答えいただいたものを参考にしつつ、自己解決しました。
どうもありがとうございました。
こんなことで困る人はいないかもしれないけど、一応メモです。
$line = mb_convert_encoding($_POST["string"], "JIS", "EUC-JP");
for ($i = 0; $i < mb_strlen($line, "JIS"); $i++) {
$buf = mb_substr($line, $i, 1, "JIS");
$buf = bin2hex($buf);
$buf = ereg_replace("^1b2442", "", $buf);
$buf = ereg_replace("^1B284A", "", $buf);
$buf = ereg_replace("^1b2849", "", $buf);
$buf = ereg_replace("1b2842$", "", $buf);
$buf = hexdec($buf);
$disp .= "「{$buf}」";
}
文字列をバイナリ化し、下記の特殊コードを削除して10進数変換。
JISコードの始まり = 1B2442
JISローマ字の始まり = 1B284A
JIS半角カナの始まり = 1B2849
ASCII コードに戻るとき = 1B2842
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# S-JIS → JIS コード変換するには 3 2023/02/09 23:55
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- マウス・キーボード 教えて! AppleのMagic Keyboard(JIS)をWindows 10で使用次第のですが 2 2022/06/01 18:07
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Java VScodeのターミナルの文字化けについて 1 2022/09/27 22:19
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mb_send_mailの2重投稿を防止し...
-
PHP+Postgres 「髙」が文字化け
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
ファイルの内容をstrcpyを使っ...
-
エクセルVBA 文字列領域が不足...
-
C++で空Enterの入力を判...
-
【Excel VBA】A列の全角・半角...
-
数値をASCII文字にする方法につ...
-
改行を読み飛ばす
-
delphi でのコード上でTab を入...
-
VBScriptである文字列に半角文...
-
jsp 改行コードで改行させて表...
-
変数の中の改行コードをBRタグ...
-
ファイルから読み取った改行文...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルのCOUNTIFが正しくカウ...
-
文の改行
-
正規表現 文中空白可能
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
SJISで取得した半角カナをUTF-8...
-
PHPmailerでの添付ファイルの文...
-
PostgreSQLからCSV形式でエクス...
-
PHP+Postgres 「髙」が文字化け
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
UTF8メールがLotus Notesで文字...
-
PHPのsendmailでの文字化けにつ...
-
「あ」→「82A0」のようにshift-...
-
メールのCCに複数のアドレスを...
-
phpMyAdmin内での文字化け
-
mb_ereg_replace での文字変換
-
mail()で送信したメールのタイ...
-
PHP cURLでPOSTした値が文字化...
-
RSSを取得すると文字化けする。
-
マルバツゲームのプレーヤー交...
-
includeファイルの文字コードに...
-
DOMDocumentの文字化けに悩まさ...
-
UTC-8→SJISで文字化け
おすすめ情報