1.因为你输出的时候没有指定utf8编码
mb_http_output( "UTF-8" );
echo mb_convert_encoding($text, "UTF-8", $encode);
不过转换后的字符存在字节丢失现像.2.
正确设置输出编码
不进行编码转换就能正确显示,不过好像你要求的不应该只是这样。
mb_http_output( "UTF-8" );
echo mb_convert_encoding($text, "UTF-8", $encode);
不过转换后的字符存在字节丢失现像.2.
正确设置输出编码
不进行编码转换就能正确显示,不过好像你要求的不应该只是这样。
不进行编码转换就能正确显示 --> 不转换一样产生乱码!希望你测试一下!谢谢!
$file = $_POST['fname'];
if(is_file($file)){
$text .= file_get_contents($file);
echo $text;
}
?>
<FORM METHOD=POST ACTION="?">
<input type="file" name="fname">
<input type="submit" value="start">
</FORM>
$file = $_POST['fname'];
if(is_file($file)){
$text .= file_get_contents($file);
echo $text;
}
?>
<FORM METHOD=POST ACTION="?">
<input type="file" name="fname">
<input type="submit" value="start">
</FORM>
我用记事本存的utf-8
第一个问题的浏览器编码要选择utf8。
第二个问题的浏览器编码要选择GB2312。
确实存在我说问题! 可是用你们的方法根本解决不了! 可是是我表述的不清楚吧!我郁闷了一天! 希望你加我QQ聊! 22940943 谢谢! :-)
$file = "ansi.txt";
$handle = fopen($file, "rb");$text = '';
while(!feof($handle))
{
$text .= fgets($handle, 1024);
}
fclose($handle);//注意编码的排列顺序.如果没有CP936 ,会被认为是BIG-5的.
$encode = mb_detect_encoding($text, "ASCII,UTF-8,CP936,EUC-CN,BIG-5,EUC-TW");echo mb_convert_encoding($text, "UTF-8", $encode);
echo $encode;
?>
注意编码的排列顺序.如果没有CP936 ,会被认为是BIG-5的--->这是为什么呢?
明白! 结帐!
,原来自带了函数,我还傻傻地想有空把那个java版的detect encode类改成php版的。
看来我要去改我的程序了