这是我的问题here的扩展。
在一个简单的测试中收集我链接到的问题的更多信息我试图通过phpMyAdmin接口将一个&符号插入我的数据库......
INSERT INTO `my_db`.`some_table` (`id`, `version`, `value`) VALUES (NULL, '0', '&');
...但插入的内容是HTML等效&
。
我的数据库排序规则是utf8_bin
,我插入的表格是utf8_general_ci
,而我正在尝试插入&符号的字段是varchar
类型。
如何将原始的&符号&
插入MySQL数据库?
更新
我不知道phpMyAdmin的问题是什么,但我认为我发现了我的应用程序的问题。似乎Hibernate没有使用正确的字符集进行连接。我已经指定了自定义的MySQL方言,所以我只是覆盖getTableTypeString
方法,如下所示,我的应用程序现在正确地将值插入MySQL:
class CustomMySQL5InnoDBDialect extends MySQL5InnoDBDialect {
@Override
public String getTableTypeString() {
return " ENGINE=InnoDB DEFAULT CHARSET=utf8"
}
}
答案 0 :(得分:0)
您可以尝试:
INSERT INTO `my_db`.`some_table` (`id`, `version`, `value`) VALUES (NULL, '0', _utf8'&');
答案 1 :(得分:0)
我不知道phpMyAdmin的问题是什么,但我认为我发现了我的应用程序的问题。似乎Hibernate没有使用正确的字符集进行连接。我已经指定了一个自定义MySQL方言,所以我只是覆盖了getTableTypeString方法,如下所示,我的应用程序现在正确地将值插入MySQL:
class CustomMySQL5InnoDBDialect扩展了MySQL5InnoDBDialect {
@覆盖
public String getTableTypeString(){
返回“ENGINE = InnoDB DEFAULT CHARSET = utf8”
}
}