gpt4 book ai didi

sql - 将 UTF-8 字符串经典 ASP 转换为 SQL 数据库

转载 作者:行者123 更新时间:2023-12-04 17:19:47 29 4
gpt4 key购买 nike

所以我在正确转换法语字符时遇到了问题。基本上,我有一个将数据发送到 SQL 数据库的表单。然后,在另一个页面上,检索来自该数据库的数据并将其显示给用户。但是数据(字符串)以奇怪的损坏字符显示,因为另一页表单中的输入是法语。我通过使用以下函数将字符串转换为正确的字符集克服了这个问题。但是,显然更好的解决方案是首先转换它,然后将其发送到数据库。现在这里是将从数据库检索到的字符串转换为适当字符集的代码:

Function ConvertFromUTF8(sIn)

Dim oIn: Set oIn = CreateObject("ADODB.Stream")

oIn.Open
oIn.CharSet = "WIndows-1252"
oIn.WriteText sIn
oIn.Position = 0
oIn.CharSet = "UTF-8"
ConvertFromUTF8 = oIn.ReadText
oIn.Close

End Function

我从这里得到这个功能: Classic ASP - How to convert a UTF-8 string to UCS-2?

现在我的问题是,我使用什么函数来预先转换字符串然后将它们发送到数据库,以便在我检索它们时可以使用它们?

尝试了保罗的方法:

所以有第 1 页和第 2 页。第 1 页包含一个表单,当提交时,将字符串发送到数据库,然后在第 2 页中检索。我尝试了 Paul 的解决方案,删除函数 ConvertFromUTF8 并将其保留原样(它返回了奇怪的芒果字符)。之后,我在第 1 页和第 2 页的顶部添加了以下行。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

我在两个页面上也有以下内容:
Response.CodePage = 65001 
Response.CharSet = "UTF-8"

但它没有用:(

编辑:它有效!,非常感谢大家的帮助!
我需要做的就是在第 3 页的顶部添加“CodePage = 65001”(我什至没有谈论),在那里写入 DB 部分。

最佳答案

保罗的回答没有错,但这不是唯一需要考虑的部分:
您需要完成这些步骤中的每一个,以确保获得一致的结果;

IMPORTANT: These steps have to be performed on each and every page in your web application or you will have problems (emphasized by Paul's comment).


  • 每个页面需要已保存 使用 UTF-8编码仔细检查这一点,因为某些 IDE 将默认为 Windows-1252 (也经常被误称为“ANSI”)。
  • 每个页面都需要添加以下行作为页面的第一行,为了使这更容易,我将它与其他一些值一起放在包含文件中,以便我可以在每个页面中包含它们。
    ###包含文件 - page_encoding.asp###
    <%@Language="VBScript" CodePage = 65001 %>
    <%
    Response.CharSet = "UTF-8"
    Response.CodePage = 65001
    %>
    在 ASP 页面顶部的用法(最好放在 web 根目录的 config 文件夹中)
    <!-- #include virtual="/config/page_encoding.asp" -->
    Response.Charset = "UTF-8"相当于设置 ;charset在 HTTP content-type 中标题。Response.CodePage = 65001告诉 ASP 将所有动态字符串处理为 UTF-8 .
  • 页面中的包含文件也必须是 已保存 使用 UTF-8编码(也仔细检查这些)。

  • 按照这些步骤操作,您的页面将正常工作,目前您的问题是某些页面被解释为 Windows-1252而其他人则被视为 UTF-8并且您最终会遇到编码不匹配的情况。

    关于sql - 将 UTF-8 字符串经典 ASP 转换为 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866225/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com