1

如何将 Windows-1251 转码为 UTF-8?

这样的功能会做吗?

function win_to_utf($s) 
{ 
for($i=0, $m=strlen($s); $i<$m; $i++) 
{ 
$c=ord($s[$i]); 
if ($c<=127) 
{$t.=chr($c); continue; } 
if ($c>=192 && $c<=207) 
{$t.=chr(208).chr($c-48); continue; } 
if ($c>=208 && $c<=239) 
{$t.=chr(208).chr($c-48); continue; } 
if ($c>=240 && $c<=255) 
{$t.=chr(209).chr($c-112); continue; } 
if ($c==184) { $t.=chr(209).chr(209); 
continue; }; 
if ($c==168) { $t.=chr(208).chr(129); 
continue; }; 
} 
return $t; 
} 
4

2 回答 2

3

您的转换看起来不正确。为什么不使用 iconv 或 mbstring?

$utf8 = iconv('windows-1251', 'utf-8', $ansi);
于 2010-05-08T03:03:42.880 回答
1

Php.net 有几个有用的例子

于 2010-05-07T22:53:50.050 回答