我需要在MySQL数据库中存储(可能很长)文本。文本可以包含特殊字符和非拉丁字母,并且应该可以对其执行全文搜索。MySQL 5不能存储这样的字符(但在MySQL 6中是可能的),所以我考虑在存储之前对文本进行URL编码,并在获取文本之后对其进行解码。你觉得这是个好主意吗?有人做过这样的事吗?您是否有其他解决方案?
发布于 2009-07-15 08:57:09
为什么不使用Unicode,用UTF8 - MySQL 5 supports it编码
发布于 2009-07-15 08:55:38
这是个不错的主意。
在构建搜索查询之前,您还应该计划对任何搜索项进行url编码,而不是(仅)在获取之后进行解码。如果你的应用程序端逻辑有通过编码/解码过程过滤所有数据的使用功能,那么你就不应该有任何误用漏掉。
另外,有没有可能VARBINARY数据类型可以避免这个问题?(我可以自己在谷歌上搜索这部分,但已经很晚了,而且我很困。只是帮助头脑风暴,现在是睡觉时间了。)
发布于 2009-07-15 08:59:03
MySQL的Unicode全文搜索足够智能,可以在搜索"a“时搜索相关字符,如"á”和"ä“。因此,我不会存储URL编码的文本,而是使用MySQL的选项。
https://stackoverflow.com/questions/1130191
复制相似问题