我需要在MySQL数据库中存储(可能很长)文本。文本可能包含特殊字符和非拉丁字母,应该可以对其执行全文搜索。 MySQL 5不能存储这样的字符(但它可以在MySQL 6中存储),所以我在存储之前对文本进行URL编码,并在获取之后对其进行解码。 你认为这是个好主意吗?有没有人这样做过?你有替代解决方案吗?
答案 0 :(得分:1)
为什么不使用以UTF8 - MySQL 5 supports it
编码的Unicode答案 1 :(得分:0)
不错。
除了(仅)在获取之后进行解码之外,您还应该计划在构建搜索查询之前对任何搜索项进行URL编码的过程。如果您的应用程序端逻辑具有通过编码/解码过程过滤所有数据的使用功能,那么您不应该有任何错误通过裂缝。
此外,VARBINARY数据类型是否可能避免此问题? (我自己可以谷歌这部分,但现在已经很晚了,我很困。只是帮忙头脑风暴,现在就睡觉了。)
答案 2 :(得分:0)
MySQL的Unicode全文搜索非常智能,可以在搜索“a”时搜索“á”和“ä”等相关字符。所以,我不会存储URL编码文本,而是使用MySQL的选项。