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にて「ImageHash」ライブラリを使用し画像の類似度を算出する方法
以前にPHPの「image-comparator」ライブラリで画像の類似度を算出 ...
-
-
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさ ...
-
-
FPDIで「This PDF document probably uses~~」エラーの対処方法
FPIDであるPDFを読み込ませようとすると「This PDF document ...
-
-
smart_resize_imageで縦横の比率関係なく、固定リサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...
-
-
日付の比較で○日前というのを調べる
PHP及びjavascriptで日付の比較をしたく、締切日とかではなく ○日前と ...