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で数字のプラスとマイナスを反転させる方法
PHPのプログラム内で数値のプラスとマイナスを反転させたい。以下に対応方法をメモ ...
-
-
formにhCaptchaを組み込み、PHPで結果を検証する方法
お問い合わせフォーム等でGoogle reCAPTCHAではなくhCaptcha ...
-
-
PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法
PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...
-
-
PHPで作成したプログラムをcron設定し自動実行する方法
cronの設定方法。サーバー側での設定とPHP側での書き方を以下にメモ。 &nb ...
-
-
PHPでサイトマップを動的に生成する方法
WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイト ...