PHP の unicode_to_utf8

WBOY
WBOYオリジナル
2016-06-23 14:36:311317ブラウズ

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 ;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:IIS7.5+PHP次の記事:IIS7.5+PHP