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;//テストと表示される。
参考サイト
関連記事
-
-
SendGridを使ってメールサーバを構築せずにPHPからメールを送信する方法
メールサーバを構築せずに独自ドメインのメールアドレスにてメール送信を行いたい。過 ...
-
-
Cookieをできるだけ長い期間保存する方法
あるシステムの中でCookieを可能な限り長い期間保存したいというリクエストを受 ...
-
-
AjaxのJSONP使用でPHPで作った配列をJSに返す方法
AというサイトからBというサイトにAjax通信し、Bの方ではMySQLに接続して ...
-
-
PHPで配列をGETパラメータ化、GETパラメータを配列化する方法
PHPで配列を「name=hoge&id=1&pass=fdkn ...
-
-
PHPのOpenSSL関数で文字列の暗号・復号化を行う方法
だいぶ前にPHPでBlowfishアルゴリズムを用いた暗号化と復号化する方法をメ ...