使用json_encode在PHP中打印带有特殊字符的字符串时出错

时间:2013-12-06 09:35:12

标签: php special-characters json

我需要打印以下字符串,但在php中获得了另一个输出。

   $test = "?s'd – b]zel/";
   echo $test;

输出为::?s'd-b] zel / 我需要输出相同的字符串。字符' - '是尼泊尔字体的特殊字符。但是,它显示 - 而不是 - 。那么,解决方案是什么?

EDIT 当我使用json_encode($ test)时,我得到了输出“?s'd \ u2013 b] zel /”。但我不需要unicode,我需要“?s'd - b] zel /”作为输出。我该怎么办?

4 个答案:

答案 0 :(得分:0)

确保您指定了网页的字符集:

<meta charset="utf-8">

您需要确保应用程序的每个部分都是UTF-8。数据库连接,表格数据,页面字符集等See this answer.

答案 1 :(得分:0)

我假设您在控制台上运行PHP - 如果是这种情况,您应该更改控制台设置。

如果您在网络上运行 - 您应该更改页面编码或转义您正在显示的字符。这可以通过在HTML中添加以下内容来完成:     

答案 2 :(得分:0)

这很可能是因为您使用的是UTF8编码字符(因此您的不是“正常”短划线-,但同时您的HTML文档未使用UTF8编码,而是回归(通常) )Latin1。“清理”你的$test字符串,或修复HTML以正确声明使用的编码:

<meta content="text/html; charset=utf-8" http-equiv="Content-Type">

答案 3 :(得分:0)

确保您的文档和HTML编码相同(推荐,UTF8)。

您的PHP字符集是由您正在使用的文本编辑器设置的。

您的HTML字符集可以通过发送标题来确定(这是推荐的方式!)

header("Content-type: text/html; charset=utf-8");