如何在MySQL中插入带有特殊字符的字符串?

时间:2016-10-28 18:21:51

标签: mysql coldfusion

我疯了。请帮忙。

我有一个带有文本输入的表单。这将插入到My SQL文本列中。有时用户会输入一些破坏插入的未知字符。

例如,我刚发现的是Topkapı,这是土耳其的一个小镇。您会注意到最后一个字符ı。在插入时,这会导致数据库错误:

  

执行数据库查询时出错。字符串值不正确:' / xC4 / xB1   和...'对于列' country_description'在第1行

是否有一种简单的方法可以删除这些字符或将其转义?我使用cfqueryparam并尝试HTMLEditFormat,CFSavecontent等无济于事。

2 个答案:

答案 0 :(得分:3)

我认为以下是您的选择:

  1. 如果您使用的是ColdFusion 10或更高版本,请尝试使用EncodeForHTML()。
  2. 验证您的用户界面只接受美国和英国的英文字符,数字等。
  3. 将MySQL中的列类型更改为VARCHAR(n)CHARSET utf8。
  4. 希望这有帮助。

答案 1 :(得分:2)

如果您实际上是从TinyMCE插入HTML,则EncodeForHTML()不会解决此特定问题。

修正了这个问题,将Collat​​ion更改为utf8mb4。您可以通过展开标题在Workbench中执行此操作。它默认崩溃了。

  1. 备份你的桌子。
  2. 转到"更改表格"。
  3. 点击窗口Expand the header

  4. 右上角的箭头
  5. 从排序规则下拉菜单中选择utf8mb4。

  6. Change the Collation

    1. 点击"应用"