从wordpress导入时在drupal中编码问题

维沙尔·希亚拉尼(Vishal khialani)

我目前正在将博客文章从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

我现在用光了所有选项,并且被卡住了。请帮忙

拉斐尔

您说两个数据库中的文本都是正确的,但实际上并不意味着太多:要查看记录的内容,您必须使用某些客户端,并且取决于文本的呈现方式,可能会发生很多转换,因此您可以阅读。

因此,只有两件事很重要:

  1. 列的编码
  2. Drupal返回的HTML页面的编码

由于您的页面输出’(在CP1252中为xE2x80x99)为(Unicode U + 2019,UTF-8为0xE28099)我猜该列确实为UTF-8,但是数据库和浏览器之间有些人认为文本为CP1252。这是您必须检查的内容:

  • 如果使用MySQL,则连接编码必须为UTF-8,以便PHP脚本中的内容为UTF-8文本。您可以使用SET NAMES 'UTF-8'请注意,如果不需要Unicode集,甚至可以使用CP1252:唯一重要的是您知道编码,因为PHP字符串只是字节数组。
  • 在HTTPContent-Type标头中明确定义响应编码我的意思是,将Drupal配置为调用header('Content-Type: text/html; charset=utf-8');
  • 如果HTTP响应编码不同于从db检索到的文本所使用的编码,请相应地对查询结果进行转码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章