所以我在正确转换法语字符时遇到问题。基本上,我有一个将数据发送到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
现在我的问题是,我应该使用什么函数来预先转换字符串,然后将其发送到数据库,以便在我检索它们时可以使用?
尝试过保罗的方法:
因此,有第1页和第2页。第1页包含一种表单,提交后将其发送到DB,然后在第2页中检索该字符串。我尝试了Paul的解决方案,方法是删除函数ConvertFromUTF8并将其保留为以前的样子(它返回了奇怪的芒果字符)。之后,我在第1页和第2页的顶部添加了以下行。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
在这两个页面上我也都有以下内容:
Response.CodePage = 65001
Response.CharSet = "UTF-8"
但这没有用:(
编辑:它有效!,非常感谢大家的帮助! 我需要做的就是在第3页的顶部添加“ CodePage =
65001”(我什至没有谈论过),在该处正在写DB部分。
保罗的回答没错,但这不是故事的唯一部分
您将需要执行以下每个步骤,以确保获得一致的结果。
重要说明: 这些步骤必须在Web应用程序的每个页面上执行,否则您将遇到问题(以Paul的评论为重点)。
UTF-8
请仔细检查,因为某些IDE会默认使用它Windows-1252
(通常也被误命名为“ ANSI”)。 <%@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
于在HTTPcontent-type
标头中设置。
Response.CodePage = 65001
告诉ASP将所有动态字符串处理为UTF-8
。
UTF-8
(也请仔细检查)。请按照以下步骤操作,您的页面将正常工作,当前的问题是某些页面被解释为页面,Windows-1252
而另一些页面被视为页面,UTF-8
最终导致编码不匹配。
问题内容: 从我的数据库即时通讯获取以下字符串: 它应该说的是: 我试图像这样将其转换为utf-8: 但是仍然是同样的问题。 有任何想法吗? 问题答案: 使用npm中的utf8模块对字符串进行编码/解码。 安装: 在浏览器中: 在Node.js中: API: 编码: 将任何给定的JavaScript字符串(字符串)编码为UTF-8,并返回该字符串的UTF-8编码版本。如果输入字符串包含非标量值(即
问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str
问题内容: 如何在Swift中将字符串转换为Unicode(UTF-8)字符串? 在Objective中,我可以这样写: 如何在Swift中做类似的事情? 问题答案: 使用此代码, 希望对您有所帮助
我有一个从第三方应用程序收到的字符串,我希望在我的Windows界面上使用C#以任何语言正确显示它。 由于编码不正确,我的字符串中有一段在西班牙语中如下所示: AcciÃn 然而它应该看起来像这样: 阿克松 根据这个问题的答案:如何知道C#中的字符串编码,我接收到的编码应该已经在UTF-8中出现了,但它是在编码时读取的。默认值(可能是ANSI?)。 我试图将这个字符串转换成真正的UTF-8,但问题
使用CAST(作为XML)转换XML字符串在许多情况下都能正常工作,但如果字符串包含重音字符,则会出现错误“非法XML字符”。 结果: 此外,同样的XML但是UTF-16编码,莫名其妙地工作: 结果: 这些字符在UTF-8中是非法的吗?还是有更好的方法转换成XML数据类型?
问题内容: 我无法在Android中将字符串转换为UTF-8。请帮我!! 结果: 但是“ ”应该编码为“ ” 问题答案: 在http://developer.android.com/reference/java/net/URLEncoder.html中,您可以了解到您使用的已弃用,应该使用 所以应该做到这一点。