【问题标题】:Where to fix character encoding issues: before db insertion在哪里修复字符编码问题:在插入数据库之前
【发布时间】:2011-04-22 18:26:47
【问题描述】:

我正在使用 mssql 后端处理 web 项目,除了点击它之外,我无法控制它。 很多数据都充斥着垃圾字符,而不是商标、引号、注册符号和引号。

我正在渲染的 html 设置为 utf-8。

在将数据插入数据库时​​应该注意这个编码问题吗?

【问题讨论】:

    标签: sql-server utf-8 character-encoding


    【解决方案1】:

    问题应该在哪里出错。如果您尝试在其他地方处理它,那么您不会解决问题,您只会尝试恢复丢失的数据。

    当您处理编码文本时,您必须始终正确处理。如果您在该过程中的某个时间点对其进行编码或解码不正确,则无法在其他任何时间点可靠地修复它。

    您必须通过检查数据发生的情况来找出文本编码或解码错误的位置,并在那里应用修复。

    【讨论】:

    • 所以如果我理解你的话,数据应该在插入数据库时​​正确编码。在这种情况下,UTF-8 似乎是 html 的选择?我知道将这些数据放入后端的数据库中有些古怪,并且这样做的人对网络一点也不熟悉,尽管他负责数据库的设计
    • @Ronn:数据应该根据每个步骤的适当情况进行编码或解码。将数据存储在数据库中时,稍后将其显示在网页上是无关紧要的,因此唯一需要考虑的是它应该正确存储在数据库中。当您从数据库中读取它时,您应该准备要在网页上显示的文本,这可能包括将其编码为 utf-8,但也可能包括 html 编码,具体取决于它在 html 代码中的使用位置。
    • 好的。 “应该正确存储在数据库中”这到底是什么意思?我遇到所有垃圾字符的事实是因为它没有正确存储在数据库中?
    • @Ronn:这意味着您要么必须将文本保存为 unicode (nvarchar),要么使用支持特殊字符的字符集,并将数据以相同的格式发送到数据库。如果在 Management Studio 中查看数据库内容时字符不正确,则说明保存不正确。
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多