Php UTF-8解码umlauts偶尔失败
好吧,这很奇怪,我真的不知道是什么导致我的问题: 工作流:Php UTF-8解码umlauts偶尔失败,php,mysql,sql,encoding,utf-8,Php,Mysql,Sql,Encoding,Utf 8,好吧,这很奇怪,我真的不知道是什么导致我的问题: 工作流: 我有一个带有utf-8列的常规mysql数据库 我通过一个简单的输入字段将带有德语umlauts的文本插入到该列中 我通过一个简单的查询读取并显示这些行 我的问题: 有时,也只是有时,会显示问号,而不是umlauts。 奇怪的是,它只是用某些词,而不是所有的词。 例如:“Gummibären”导致“ä”的问号,但“Gumibären”(注意单个“m”)显示正确。所以,我真的不能在这里找到一个模式 该列位于utf8\u genera
- 我有一个带有utf-8列的常规mysql数据库
- 我通过一个简单的输入字段将带有德语umlauts的文本插入到该列中
- 我通过一个简单的查询读取并显示这些行
- 该列位于
utf8\u general\u ci
- HTML文件使用
- PHP文件本身是用utf-8编码的
mysqli_query("SET NAMES 'utf8'");
$var = "SELECT * FROM table ORDER BY id DESC";
同样奇怪的是,“ä”并没有被1个问号所取代,而是被2个问号所取代,就好像有2个字符没有编码而不是仅仅1个
有什么我遗漏的吗?我发现了。它实际上与读取或将utf写入数据库无关,而是与PHP函数
wordwrap()
有关。如果wordwrap()
与多字节unicode字符(如“ä”和类似字符)一起使用,则会弄乱字符串。
我是在这个的帮助下弄明白的:还有这个:——供将来参考
谢谢你的意见 警告-mysql_query从PHP 5.5.0开始,此扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。可能重复上面链接的QA,“如果数据是从数据库中提取的,可以使用mb_detect_encoding()验证其编码。”谢谢,我阅读了这篇文章并做了一些研究。不幸的是,这对我的问题没有多大帮助。奇怪的是,某个umlaut的每一次出现都显示在右边,而不是作为一个�. 如果我设置mysqli_set_charset($con,“utf8”);它正在显示2�� 如果不是,则显示单个�.mb_detect_编码显示ASCII码