Unicode字符串php
我有个问题! 我想用php打印一个unicode字符串(比如“سلام”)! 但是当我使用echo的时候只有一些???阿佩尔 我该怎么办??? 当我想选择从数据库中检索到的字符串时,就会发生这种情况Unicode字符串php,php,string,unicode,echo,Php,String,Unicode,Echo,我有个问题! 我想用php打印一个unicode字符串(比如“سلام”)! 但是当我使用echo的时候只有一些???阿佩尔 我该怎么办??? 当我想选择从数据库中检索到的字符串时,就会发生这种情况 echo 'سلام'; 结果是: ???? 我试着使用header函数,但没有帮到我 您需要在HTTP响应中声明使用的字符编码。您可以使用: 这样,输出被声明为带有字符编码UTF-8的HTML。请注意,如果已经将数据发送到客户端而未对其进行缓冲,则不能使用标题。因此,可以使用缓冲区来缓冲输出,
echo 'سلام';
结果是:
????
我试着使用header函数,但没有帮到我 您需要在HTTP响应中声明使用的字符编码。您可以使用:
这样,输出被声明为带有字符编码UTF-8的HTML。请注意,如果已经将数据发送到客户端而未对其进行缓冲,则不能使用
标题。因此,可以使用缓冲区来缓冲输出,以便您可以修改标题,尽管已经有一些输出,或者在任何输出之前使用标题。您需要做三件事:
确保您接收的数据是UTF-8数据。对于MySQL,在选择记录之前查询设置名称“utf8”
在处理UTF-8字符串时,请确保使用与UTF-8兼容的函数
确保将输出编码设置为UTF-8。对于HTML,这可以通过将内容类型
HTTP头设置为(例如text/HTML)来实现;字符集=utf-8
当然,用支持所需字符的任何编码替换“UTF-8”。无需更改数据库表(除了可能的性能提升)。您可能需要更改HTML模板等。如果您决定使用UTF-16或其他(大部分)与ASCII不兼容的东西。也许我有点晚了,但这对我来说很有效:
echo utf8_encode('سلام');
你指定了正确的字符编码吗?不知道为什么会被否决,这个问题完全正确。我最终找到的解决方案是:如果计划在mysql中存储unicode数据,则需要使用支持它的字符集。默认情况下,Mysql使用latin1,但您可以切换到utf-8。@Troleskn,我假设数据已经正确存储。我提到更改数据库表是因为,比如说,如果站点切换到UTF-16,则不需要更改数据库数据的字符集,因为转换是为您进行的。
echo utf8_encode('سلام');