1

这确实有点奇怪,可能是我没有正确完成的事情,但是由于某种原因,当我在 MySQL 中插入或更新(使用 PHP 类创建)时,由于某种原因插入的文本(一个在这种情况下,电子邮件的 HTML 副本)只插入了一半......当它看到“-”时它会一直中断

我不认为这是一个标准的连字符,因为它在浏览器栏中看起来略有不同,即使在这个文本区域中,我的连字符“-”也比“-”窄。我已经尝试过 HTML 实体,但不会转换,所以在处理这个麻烦的字符时有什么建议吗?

虽然我可能应该说,如果我使用 PHP My Admin 直接插入 HTML 正文(完全相同的格式,所有内容都会被插入。我什至尝试str_replace删除它但没有运气。我还用更多的词替换了单词话但有效(但在那个角色出​​现之前它仍然被切断......

4

1 回答 1

1

您使用的是“破折号”,不要与连字符混淆。看看区别:--

破折号有很多种:

figure dash    (‒)  U+2012              
en dash        (–)  U+2013
em dash        (—)  U+2014  
horizontal bar (―)  U+2015
swung dash     (⁓)  U+2053

您可以在执行查询之前尝试str_replace("–", "-", $query);每种类型,看看是否能解决您的问题,但实际上您应该考虑是否可能执行utf8_encode(),然后将数据库字段设置为使用 UTF8。

于 2012-08-31T18:06:27.563 回答