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で他サーバにFTP経由にてファイルをアップロードする方法
formで送信した内容をチェックした上で、他サーバにファイルをアップロードしたか ...
-
-
Codeigniter4でMySQLに接続しCRUD操作する方法
Codeigniter4.4.4でMySQLに接続しCRUD操作したい。また、任 ...
-
-
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...
-
-
PHPのテンプレートエンジン「Twig」の使い方について簡易メモ
開発中の案件でテンプレートエンジンのTwigを利用する機会があった。使ってみた感 ...
-
-
【2025年版】PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
5年ほど前にPHPとStripeを用いたクレカ決済機能をテスト実装したが最近試し ...