我目前正在将博客文章从wordpress转移到drupal。但是,将其移动后,某些文本将无法正确显示。
wordpress正在显示: When it hasn’t (html code is <h2>When it hasn’t</h2>)
Drupal正在显示: When it hasn’t (html code is <h2>When it hasn’t</h2>)
在wordpress和drupal db中,该值是正确的。来源是相同的。<h2>When it hasn’t</h2>
我进行了搜索,发现了很多选择。他们都没有帮助。以下是我已经完成并检查的内容。
1)我仔细检查过utf-8是drupal和wp中的字符。我还制作了一个简单的test.php文件,以检查是否有其他问题,但仍然无法正确显示。
2)我确保当我们使用mysqldump并上传到drupal utf-8时使用。
3)保存时,我还确保.php文件位于utf-8中。
4)我更改了chrome中每个可用选项的编码类型,但没有正确显示。
5)我还使用php函数对其进行了重新编码,但它们无法正常工作。
$value2="<h2>When it hasn’t</h2>";
$out = recode_string('..utf-8', $value2);
//output - When it hasnt
$out2= mb_convert_encoding($value2,'UTF-8', "UTF-8");
// output - When it hasn’t
$out3= @iconv('UTF-8', 'utf-8', $value2);
// output - When it hasn’t
我现在用光了所有选项,并且被卡住了。请帮忙
您说两个数据库中的文本都是正确的,但实际上并不意味着太多:要查看记录的内容,您必须使用某些客户端,并且取决于文本的呈现方式,可能会发生很多转换,因此您可以阅读。
因此,只有两件事很重要:
由于您的页面输出’
(在CP1252中为xE2x80x99)为’
(Unicode U + 2019,UTF-8为0xE28099)我猜该列确实为UTF-8,但是数据库和浏览器之间有些人认为文本为CP1252。这是您必须检查的内容:
SET NAMES 'UTF-8'
。请注意,如果不需要Unicode集,甚至可以使用CP1252:唯一重要的是您知道编码,因为PHP字符串只是字节数组。Content-Type
标头中明确定义响应编码。我的意思是,将Drupal配置为调用header('Content-Type: text/html; charset=utf-8');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句