勉強したことのメモ

webプログラマが勉強したことのメモ。

UTF-16にエンコードされている文字列をUTF-8へデコード

   

エンコードされている文字列であまり見かけない感じのものがあった。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;//テストと表示される。

 

■参考サイト

http://kanonji.info/blog/2014/07/09/php%E3%81%A7unicode%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%82%92%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B/

 - PHP

  関連記事

PHPでみたいに省略して書く際の設定

さくらvpsで<?=$hoge;?>とか省略して書こうとしても書けな ...

フォームデータを一気に取得

<? error_reporting(E_ALL & ~E_NOT ...

PHPの連想配列と正当性のチェック

ソースの解析中、こんな書き方があったのか、 と思ったのでメモ。 $List = ...

MySQLiでDELETE文

MySQLiでDELETE文 ■ソース $mysqli = new mysqli ...

PHPで多次元連想配列のキーを指定してソート

やりたかった事は、 ・多次元配列があってcodeというキーでソートしたい という ...

コマンドの実行履歴を確認する

SSH接続した際のコマンド実行履歴を確認したかった。 history で確認でき ...

日付と時間のピッカー

ここだとbootstrap使用だけど、他に良さそうなものがあったのでメモ。 ■参 ...

PHPで「Unable to allocate~」とエラー

PHPで「Unable to allocate memory for pool」 ...

PHPでdo-while(0)の利点

社内のソースで do { //処理内容 if ($test) { break; ...

PHPの構文チェック

JSONLINTみたいにオンラインで構文チェックを できるサイト様があったのでメ ...