PHP:将字节数组转换为UTF-8字符串

时间:2017-09-12 17:08:45

标签: php utf-8

我们有一些愚蠢且无法编译的客户端代码,它将字符串发送到Web服务。使用C#

中的此代码创建字符串的格式
        string strAscii = "";

        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding ( );
        byte[] arrOrg = encoding.GetBytes ( strOrg );

        for ( int i = 0; i < arrOrg.Length; i++ )
        {
            strAscii += arrOrg[ i ].ToString ( "x2" );
        }

        return strAscii;

必须通过PHP页面解开。我设法使其工作的唯一方法是将字符串的每个对应转换为字节值并将它们放入数组中。

然后运行这个怪物:

$arrBytes = array( 0xc3, 0xa9); // this is a single UTF-8 character (e acute)

$fh = fopen("./temp.tmp", "w+");
for($i = 0; $i < count($arrBytes); $i++)
{
    fprintf($fh, "%c", $arrBytes[$i]);
}
fclose($fh);

$str = file_get_contents("./temp.tmp");

echo $str;

这很有效,但这很荒谬。

有没有更好的方法呢?我已经尝试过所有&#34;标准&#34;输入方式,mb_convert_encoding,iconv和pack但无济于事。

0 个答案:

没有答案