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でエラーメッセージを見やすくするwhoopsの利用方法
PHPのエラーメッセージが見づらい。これはこういうもの、と諦めていたがCodei ...
-
-
地理院のジオコーディングAPIをPHPからリクエストする方法
以前に地理院のジオコーディングAPIをjavascriptからajaxでリクエス ...
-
-
PHPで定義済みの変数 / 定数とincludeしているファイル一覧を取得する方法
他社が作成されたPHPのファイルを読み解く際に、定義済みの変数 / 定数や、in ...
-
-
Opauthで「Please change the…」エラーの対応方法
Opauthを使用中に「Notice: Please change the va ...
-
-
【2025年版】PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
5年ほど前にPHPとStripeを用いたクレカ決済機能をテスト実装したが最近試し ...