我正在用MySql创建一个数据库。我使用整理utf8。我使用的是欧洲语言,它有重音和特殊字符,如ç。
在包含或不包含特殊字符的情况下,在数据库中存储文本的最佳方法是什么?例如,我应该在数据库中使用différent还是diffdifférent
(法语不同)? (这意味着,我应该在将文本存储到数据库之前或之后使用htmlspecialcharts进行转换?)
我尝试过,两种方式都运作良好。但是有任何理由可以出于任何技术原因更推荐选项,或者任何选项都可以。我现在想确定我是否开始使用数据库。后来改变会更难。
答案 0 :(得分:4)
我认为你绝对应该不用HTML实体替换你的角色:这是XML的标准,而不是一切!
例如,如果由于某种原因必须提供JSON,那么您将被迫对文本进行XML解码,然后将其作为JSON提供,其中UTF-8字符以不同的方式编码。
此外,转换字符会使你存储的字符串更不易被人类阅读(因此人类可搜索的程度较低):Le premier écoquartier d’Île-de-France a été inauguré
会被编码成绝对恶魔的东西。
让你的MySQL完成艰苦的任务,处理非ASCII字符。
答案 1 :(得分:2)
这里有两个科目。
在由UTF-8驱动且需要US-ASCII以外的字符的应用程序中,将自己限制为7位US-ASCII是必要/有用的吗?这当然没有必要,我无法想象一个原因。就像将视频保存为未压缩的WAV一样。在大多数情况下,8位仍然存在。
将纯文本转换为HTML以存储它是否必要/有用?你显然不需要这样做,我想不出单一的好处,你强迫自己承担任何单一任务的伪造编码/解码的额外负担,例如:搜索。 HTML不是一切。