我在一个已经开始的网络项目上工作,并注意到通过超文本标记语言编辑器生成的内容在存储在数据库之前是用base64编码的。我认为以前的开发人员这样做是为了防止用户编写一些数据库引擎可能未知的字符,我是说对于没有安装字符集的语言,但我想知道这是不是一个好的做法或行为。
这里的问题不是如何在CLOB适合的地方存储大量数据,而是如何处理未知字符。
谁能告诉我存储通过HTML编辑器生成的HTML文本的正确方向?我真的需要为此操心吗?或者只是假设我的数据库将支持任何语言字符集?
谢谢
发布于 2013-04-24 01:26:07
您需要做的是确保html页面和数据库字符集相同,或者数据库是html页面的超集。
一个好的web程序员会确保web服务器和html内容具有相同的字符集。
web服务器字符集在web服务器配置文件中设置,例如在apache中为:
AddDefaultCharset windows-1252html页面字符集在meta标记中定义为:
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/>然后确保数据库支持相同的字符集或超集。如果所有这些都是好的,那么您将不需要将字符串转换为base64。
即使字符集不正常,也有很大可能不需要转换为base64。
浏览器和web服务器根据其字符集转换字符。例如,在utf8中,部首符号是1个字符,而在windows-1252中,它变成了6个字符:"√“
我能给出的最好的建议是检查数据库、web服务器和html页面中的字符集。并使用html扩展字符进行测试。
https://stackoverflow.com/questions/15805876
复制相似问题