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