我在 mysql 数据库中有这个值:“A+”它是杂志的名称。我可以看到它位于数据库中,但是我无法通过 php 显示它。当我获取 sql 数据时,它输出
“一种 ”
我试过 utfencode() utfdecode() htmlentities() ... 无济于事。我无法诊断问题。万一这很重要,我通过ajax(jquery load()函数)获取这些数据
更新:
事实证明,在通过正则表达式解析数据时,+ 号被删除了。似乎也找不到解决办法。preg_quote() 没有用。
我在 mysql 数据库中有这个值:“A+”它是杂志的名称。我可以看到它位于数据库中,但是我无法通过 php 显示它。当我获取 sql 数据时,它输出
“一种 ”
我试过 utfencode() utfdecode() htmlentities() ... 无济于事。我无法诊断问题。万一这很重要,我通过ajax(jquery load()函数)获取这些数据
更新:
事实证明,在通过正则表达式解析数据时,+ 号被删除了。似乎也找不到解决办法。preg_quote() 没有用。
jquery 可能将其解释为 url 编码的“+”符号,可以将其解释为空格。发布一些代码,我相信有人可以给你一个完整的答案。
当数据声明为 时,该+
字符被解释为空格application/x-www-form-urlencoded
:
这是默认的内容类型。使用此内容类型提交的表单必须编码如下:
- 控件名称和值被转义。空格字符被替换为 '
+
',然后保留字符被转义,如 [RFC1738] 第 2.2 节所述:非字母数字字符被替换为 '%HH
'、一个百分号和两个表示字符 ASCII 码的十六进制数字。换行符表示为“CR LF”对(即,'%0D%0A
')。- 控件名称/值按照它们在文档中出现的顺序列出。名称与值之间用 '
=
' 分隔,名称/值对之间用 '&
' 分隔。
所以你必须正确编码。在 JavaScript 中,encodeURIComponent
如果要+
在 URI 中使用字符,请使用该函数:
"http://www.example.com/?q=" + encodeURIComponent("A+")
您是否将其作为 javascript 参数传递而没有urlencode()?
好吧,因为让它工作的唯一方法就是做
echo urlencode("这是 A+ 文本");
它有效并且似乎不会损坏文本的其余部分,但我不明白这背后的理由。无论如何,感谢所有试图提供帮助的人。
您可以在 \ 之前添加一个转义字符,看看它是如何工作的。如果不使用htmlentities转换字段数据