UTF-16にエンコードされている文字列をUTF-8へデコード
2024/03/04
エンコードされている文字列であまり見かけない感じのものがあった。UTF-8やShift-JIS、EUC-JPではなく、色々調べるとUTF-16でエンコードされていた。以下でUTF-8にデコードできた。
ソースコード
<?php
$body = '\u30c6\u30b9\u30c8';
$decoded = preg_replace_callback(
'|\\\\u([0-9a-f]{4})|i',
function($matched){
return mb_convert_encoding(pack('H*', $matched[1]), 'UTF-8', 'UTF-16');
},
$body
);
echo $decoded;//テストと表示される。
参考サイト
関連記事
-
-
PHPで携帯(スマホ含)とPCの判別
PHPにて携帯(スマホ含む)とPCで処理を振り分けたかったのでメモ。 <? ...
-
-
CodeIgniter4でのメール送信方法(テキスト・HTMLメール)
CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...
-
-
バニラPHPでフラッシュデータ(フラッシュメッセージ)機能を実装する方法
PHPフレームワークのCodeIgniterを勉強していた際にページ遷移好みに表 ...
-
-
PHPで値が空の配列を削除
やりたかった事は配列でキーは入っていて値が入っていない ものを削除したかった。 ...
-
-
PHPでURLを解析してクエリ(GETパラメータ)を抽出する方法
formからGETで送信したクエリ(パラメータ)を、受信した側で抽出し、キーと値 ...