gpt4 book ai didi

javascript - sql查询结果显示来自javascript的问号

转载 作者:行者123 更新时间:2023-12-03 10:35:52 27 4
gpt4 key购买 nike

我在 .asp 文件中有 js 代码,连接到 sql server ,执行查询并响应查询结果。我插入了 charset = "utf-8""Windows-1255" 但它仍然不起作用。我的数据库排序规则是 hebrew_ci_as,所有表中的大部分数据都是希伯来语。

每次我尝试在网络上或我的应用程序中使用一个 Request.QueryString 参数获取查询结果时,我都会得到问号(???)而不是所有希伯来语字符串,英语很好,而且是整数很好。

我使用的是 windows server 2012 r2 标准,其中包含希伯来语和英语、sql server 2008 r2iis 6.2 以及所有更新。

JS 代码:

    Response.Expires        =   -1;
Response.CharSet = "Windows-1255";


var user_id = new String(Request.QueryString("user_id"));
var strConnection = new String("PROVIDER=SQLOLEDB;Data Source=ABC;Initial Catalog=DEF;uid=GHI;pwd=JKL");
var query = new String("SELECT * FROM contact WHERE contact.identifier = '"+user_id+"'");

var cnn = Server.CreateObject("ADODB.Connection");
var adClipString = 2;
if(user_id.toLowerCase()!="undefined")
{
try
{
cnn.Open(strConnection);
query=query.replace(/%user_id%/i,user_id);

var returnVal = cnn.Execute(query).GetString(adClipString,-1,"@@@","","")

Response.Write(returnVal)


}
catch(e)
{
Response.Write(e.message);
}
finally
{
if (cnn.State==1)cnn.Close();
cnn=null;
}
};

结果:

@@@@@@03-1234567@@@ItzikE@@@?????@@@?????@@@59 ???? , ?? ???? - ???@@@?? ???? - ???@@@??? ???? ??????? ????@@@114@@@0@@@moital@@@moital@@@?????, ?????

所有的希伯来语都是 ??? ,我在许多不同的环境和服务器中多次使用了这个代码,并且我总是通过在任何编辑器中以 utf-8 格式保存文件本身来解决这个问题 - pspadnotepad++ ...并且它总是有效。这次是我真的尝试了一切但不知道的其他事情。帮助,谢谢。

最佳答案

替换此行

 new String("SELECT * FROM contact WHERE contact.identifier = '"+user_id+"'");

从此检查

 new String("SELECT * FROM contact WHERE contact.identifier = N'"+user_id+"'");

You must precede all Unicode strings with a prefix N when you deal with Unicode string constants in SQL Server

引用:MSDN

关于javascript - sql查询结果显示来自javascript的问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28992007/

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