ホームページ >バックエンド開発 >PHPチュートリアル >PHP の unicode_to_utf8
SMS 形式が 8:UCS2 エンコードの場合、Unicode 16 進エンコードを UTF8 に変換する必要がありますが、PHP には Unicode サポートが組み込まれていません。どうすればよいですか?
/* *
16 進文字列を utf8 に変換します。テキスト文字列
* @parammixed $str 変換する文字列は null にすることはできません
* @return utf8 テキスト文字列
*/
public static function unicode_hex_to_utf8( $str ) {
// 長さを決定します
if (( strlen ( $ str ) % 4 ) != 0 )
throw newException ( ' (strlen($str) % 4 != 0 ' );
// byte[] の長さを計算します
$len = strlen ( $str ) / 4 ;
$str_result = '' ;
// ループコピー
for ( $i = 0 ; $i $str_unicode_hex = substr ( $str, $i * 4, 4) ;
unicode_to_utf8( $unicode_hex ) {
$unicode = hexdec ( $unicode_hex );
if ( $unicode < 128 ) {
$utf8 = chr ( $unicode );
elseif ( $unicode < 2048 ) {
$utf8 .= chr ( 192 + ( ( $unicode - ( $unicode % 64 ) ) / 64 ) ); ) );
} else {
} $utf8 . = chr ( ( $unicode - ( $unicode % 4096 ) ) / 4096 ) ); % 4096 ) - ( $unicode % 64 )) /
64 ;