我使用PHP CURL来获取页面。 我将数据发布到页面,当我输出响应时,我会得到一堆像这样的字符:
‹˙˙”MkÂ@E÷ţŠ
我意识到这是一个编码问题。
在php.ini中将默认字符集设置为UTF-8后输出不同但仍然不可读:
�����Mk�@E
当我进入页面并手动提交表单页面在浏览器中显示正常时,但是当我使用CURL输出PHP以进行发布和输出响应时,它是不可读的。 我该如何解决这个问题,如何设置编码以及在哪里?
答案 0 :(得分:1)
我正在使用CE字符,之前我遇到过非常类似的问题:它只是将我的所有页面utf-8作为页面编码无处不在,但是你还需要检查所有文件 - php,js,css等等 - 实际上也是用utf-8进行物理编码的。
为此,我使用了很棒的Notepad ++,只是去ENCODING - >转换为utf-8
Notepad ++有时候不知道你在utf-8中保存了你的文件,并认为它是例如ANSI:如果你没有注意到并保存它,你的问题可能会再次重复,所以我在某处学到了这个不错的小技巧:使用转换为utf-8"在Notepad ++中只需将它放在文件的顶部(我用这个用于php所以我显示php示例):
<?php //Útf-8 ľščťžýáíéúäôň
# YOUR SCRIPT HERE
?>
通过这种方式,它将始终被识别为UTF-8编码文件(没有这个我不时会检测到我的文件为utf-8,因为它们被编码了!)
希望这对那些做得很好(网页编码为UTF-8)并且仍然有这些奇怪的角色问题的人有所帮助
答案 1 :(得分:0)
确保您到处使用UTF8
!
php ** header()**
<?php header("Content-type: text/html; charset=utf-8"); ?>
和
html meta
代码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
您可以使用iconv()
将输入编码转换为utf-8例如
$data = iconv("Windows-1252","UTF-8",$data);
您可以使用mb_detect_encoding()
找到所接收文字的编码