|
|
2
9
HTML的内容可以是UTF-8格式,是的,但是您是否也明确地将HTML页面(通过PHP生成)的内容类型(编码)设置为UTF-8?尝试返回一个
这样,提交给PHP的数据的内容类型也将相同。
|
|
|
3
4
听起来真正的问题是数据库没有使用与页面相同的字符编码(可能应该是UTF-8)。在这种情况下,如果任何用户提交非ASCII字符,您可能会在数据库中看到奇怪的字符。仅仅查找和修复其中的一些(卷曲引号和em破折号)并不能解决真正的问题。 migrating your database to another character encoding ,至少对于MySQL数据库。 |
|
|
4
2
不幸的是,这是一个非常常见的问题,PHP对字符集的处理非常糟糕,这并没有帮助。
我们所做的是强迫文本通过
|
|
|
5
1
我们经常使用标准的字符串替换函数。尽管ASCII/Unicode在这种情况下的本质相当模糊,但它仍然有效。只需确保您的php文件以正确的编码格式保存,等等。 |
|
|
6
1
|
|
|
7
1
你可以试试 mb_ convert_encoding
这假设您需要UTF-8,并且convert可以找到合理的替代品。。。如果没有,请自行更换。 |
|
|
8
1
|
|
|
9
1
|
|
|
10
1
您必须手动将单个列的排序规则更改为UTF8;整体更改数据库不会改变这些。 |
|
|
11
1
如果 您正在寻找这些字符在web上转义 保存 它们的外观,因此字符串将如下所示: “太好了!” 而不是 “太无聊了” ... 您可以使用自己的自定义htmlEncode函数代替PHP函数来实现这一点 :
|
|
|
12
0
解决方案,但我会尝试测试以了解PHP看到了什么。假设它看到了“”(还有一些其他的可能性,比如简单的“”,或者“&8220;”)。然后执行str#u replace以去除所有这些,并用普通引号替换它们,然后将答案填充到数据库中。 更好的解决方案可能包括使端到端数据通过所有UTF-8,因为人们正试图在其他答案中提供帮助。 |
|
|
13
0
事实上,这个问题不是在PHP中发生的,而是在JavaScript中发生的,这是由于Word的复制/粘贴造成的,所以在将文本传递给PHP之前,您需要用JavaScript解决问题,请参见此答案 https://stackoverflow.com/a/6219023/1857295 . |