将URL编码的文本存储在数据库中是个好主意吗?

时间:2009-07-15 08:49:44

标签: mysql database text encoding character

我需要在MySQL数据库中存储(可能很长)文本。文本可能包含特殊字符和非拉丁字母,应该可以对其执行全文搜索。 MySQL 5不能存储这样的字符(但它可以在MySQL 6中存储),所以我在存储之前对文本进行URL编码,并在获取之后对其进行解码。 你认为这是个好主意吗?有没有人这样做过?你有替代解决方案吗?

3 个答案:

答案 0 :(得分:1)

为什么不使用以UTF8 - MySQL 5 supports it

编码的Unicode

答案 1 :(得分:0)

不错。

除了(仅)在获取之后进行解码之外,您还应该计划在构建搜索查询之前对任何搜索项进行URL编码的过程。如果您的应用程序端逻辑具有通过编码/解码过程过滤所有数据的使用功能,那么您不应该有任何错误通过裂缝。

此外,VARBINARY数据类型是否可能避免此问题? (我自己可以谷歌这部分,但现在已经很晚了,我很困。只是帮忙头脑风暴,现在就睡觉了。)

答案 2 :(得分:0)

MySQL的Unicode全文搜索非常智能,可以在搜索“a”时搜索“á”和“ä”等相关字符。所以,我不会存储URL编码文本,而是使用MySQL的选项。