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で指定日から曜日を割り出す
曜日ってどうやって割り出すの? となったのでメモ。 ■リファレンス http:/ ...
-
-
PHP-FPMのプロセス設定を行いサーバのメモリ消費を抑える方法
CentOS7からAlmaLlinux8に移行してから微妙にサーバのレスポンスが ...
-
-
CodeIgniter4でGET / POSTパラメータの受け取りとルーティング設定方法
CodeIgniter4.4.4でページを開いた際にGET / POSTパラメー ...
-
-
PHPとSQLiteで簡易BBSの作成
PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。 目次1 ...
-
-
PHPでユーザID毎にディレクトリを作成しキャッシュファイルを格納する方法
PHPで作ったプログラム内にてユーザーID毎に特定のディレクトリを作成し、その中 ...