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;//テストと表示される。
参考サイト
関連記事
PHP5.4系でAPCが上手く動かなかったので5.5にアップデート&Zend OPcache導入
PHP5.3系から5.4系にアップデートしてから、WordPressがちょっと重 ...
var_dumpの中に複数値を入れられる
何行もvar_dump書いてたけど一行でいけるみたい。 <?php $ho ...
PHPの配列をファイルに保存してPHPやJavaScriptで呼び出す方法
PHPの配列をファイルとして保存し、別のページからPHPやJavaScriptで ...
PHPで携帯(スマホ含)とPCの判別
PHPにて携帯(スマホ含む)とPCで処理を振り分けたかったのでメモ。 <? ...
CodeIgniter4でのメール送信方法(テキスト・HTMLメール)
CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...