Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 字符集转换为带菱形的问号,即使utf-8_Php_Mysql_Character Encoding - Fatal编程技术网

Php 字符集转换为带菱形的问号,即使utf-8

Php 字符集转换为带菱形的问号,即使utf-8,php,mysql,character-encoding,Php,Mysql,Character Encoding,我使用的是使用ckeditor的后端。config.js中没有任何更改,因此它会自动将带有重音符号的法语carachters转换为html实体 因此,如果我键入é并检查ckeditor源代码,我会看到é 此字段对应的数据库表是utf8\u general\u ci 页面字符集为: 因此,当我加载前端时,我会收到以下信息: � 如果我在ckeditor源代码中键入é,它将正确显示在页面上,因为它不会将其转换为html实体 现在,如果我通过以下方式关闭ckeditor config.js

我使用的是使用ckeditor的后端。config.js中没有任何更改,因此它会自动将带有重音符号的法语carachters转换为html实体

因此,如果我键入é并检查ckeditor源代码,我会看到
é

此字段对应的数据库表是utf8\u general\u ci

页面字符集为:

因此,当我加载前端时,我会收到以下信息:

如果我在ckeditor源代码中键入é,它将正确显示在页面上,因为它不会将其转换为html实体

现在,如果我通过以下方式关闭ckeditor config.js中的转换:config.entities=false

然后键入é并检查ckeditor源代码,它保持为é,因此我认为这会起作用

但是,在加载前端时,我得到错误:

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\site\includes\functions\clean_code.php(162) : eval()'d code on line 34
我可以将clean_code.php代码粘贴到这里,但我认为保持整个站点不变很重要。所以我有点被卡住了。我能做什么

编辑:

好的,所以我追踪到了一个修改,它用以下方法回应了描述:

  echo stripslashes( tep_sanitize_html( html_entity_decode( stripslashes( $product_info[ 'products_description' ] ) ) ) );
通常的做法是:

<?php echo stripslashes($product_info['products_description']); ?>


所以我不确定为什么这个插件的开发人员决定使用sanitize html方法以及decode。但是移除它们并将其改回原来的工作方式

这是两个问题,所以有两个答案:

您的问题的唯一合乎逻辑的答案是�, 就是在这条线路的某个地方,您没有正确地将其存储为UTF-8,它确实被转换为其他内容


第二个问题,(eval()d代码中的致命错误)您应该发布触发此错误的代码,最好不要对任何远程重要的内容使用eval。尤其不是动态eval()代码,您似乎正在这样做。

注意:如果您有错误,特殊字符会导致错误。否则,编辑器通常使用htmlentities(),因此,如果要正确显示内容,必须使用html\u entity\u decode(),� char表示双UTF8编码utf-8是否应该将html实体转换为正确的字符?还是只需要é->é而不需要é;->éUTF-8不能转换成任何东西。html_entity_decode将html实体转换为某些字符集(取决于编码参数)。iconv、mb_convert_编码在ISO-8859-1、UTF-8和许多其他字符集之间进行转换。