我创建了一个将内容从Drupal迁移到WordPress的例程。基本上我是在PHP脚本中查询Drupal数据库,然后使用wp_insert_post()
将该数据添加到WordPress数据库中。
我遇到了字符编码的问题,在我将Drupal内容插入WordPress后,某些字符会导致字符串的其余部分被剥离。
举个例子:
<strong>The following text will stop at the back tick’, this text will get stripped out</strong><br />
导入时,后面的勾选后的任何内容都会删除,如下:
<strong>The following text will stop at the back tick
为了解决这个问题,我试图改变字符编码,但是这会删除后面的勾号,类似空格的字符,以及像£
符号这样的字符。
$html = iconv('utf-8', 'us-ascii', $html);
我还尝试使用此功能//TRANSLIT
和//IGNORE
,但它仍然可以完全删除这些字符或在第一个问题时停止。
任何人都可以建议将内容转换为WordPress可以接受的格式,但不删除这些字符,而是将它们转换为替代字符。
修改
我也尝试将字符串传递给htmlentities()
,但这会返回一个空字符串。
此外,我尝试使用mb_detect_encoding()
确定字符串的编码,但这会返回false,这意味着它无法检测到编码。
修改2
当我以十六进制模式查看Drupal数据库记录时,后退勾号返回‚Äô
。