2017-09-28 45 views
-2

我在本地机器上运行PHP CLI脚本,该脚本调用API并接收回UTF编码的字符串。现在,这个字符串基本上是葡萄牙语中的一个简单单词,并且在屏幕(终端)上打印时我可以正确地看到它。但是,在另一台机器上,某些字符未正确显示。问题是,我需要设置哪个php.ini选项才能在另一台机器上正确查看字符串?我没有碰到我的PHP.ini编码方面的问题,一切正常,所以我不知道我需要什么来启用UTF才能在php cli应用上工作?PHP没有正确显示某些字符

编辑:这不应该是一个终端问题。更具体地说,API返回一个字符串(UTF编码),它应该在数组中找到。但是,PHP在另一台机器上发出警告,称在数组中找不到该字符串。这是我得到的关键不存在的错误,并且显示的键或字符串看起来不正确,所以情况就是这样。

它基本上是

$stringReturnedFromApi = $apiCall(); 
$this->myArray[$stringReturnedFromApi]; 

其作品的权利在我的机器上,另一个抱怨是,键不存在,当我抬起头来$stringReturnedFromAp,它看起来并不UTF编码

+0

其他机器是否使用相同种类的终端? – apokryfos

+0

是的,几乎所有的东西都是相同的期望PHP。 – Zed

+0

请向我们提供一些最低限度的代码来证明问题。 – deceze

回答

0

其他终端需要设置为UTF-8编码。例如,PuTTY需要被告知什么编码,或者如果我记得好的话,他会使用(在Windows上)ANSI。

如果其他主机不在Windows上,只需验证语言环境以确保它是UTF-8。这不是你的错误所在,这只是客户端的一种编码。

如果结果打印到网页上,请确保字符集编码也设置为UTF8;

+0

我已经更新了问题更多细节,谢谢。 – Zed

+0

添加了一个代码示例,所以请再看一看 – Zed

+0

您是否明确从服务器发送了utf8_encode(“value”),或者您是否仅通过指定character_encoding的标头发送“value”? –

0

我不确定这实际上是一个PHP问题。

没有看到你的脚本我什么都不能说100%,但我猜测PHP脚本实际上正确地输出了UTF字符。它看起来很奇怪的原因是因为终端不理解UTF编码并且无法显示该字符。

您需要对您正在使用的终端应用程序的细节进行更具体的确定,以确定实际问题所在。我怀疑这是你可以在php.ini中修复的东西

+0

请.....如果你是_只是猜测_所以把你的_guess_到注释中,而不是滥用答案部分..谢谢 –

+0

我已经更新了更多的细节问题,谢谢。 – Zed

+0

添加了一个代码示例,请再看一下 – Zed