我在.asp文件中有js代码,连接到sql server
,执行查询并响应查询的结果。
我插入了charset = "utf-8"
或"Windows-1255"
,但它仍然没有用。
我的数据库排序规则是hebrew_ci_as,所有表格中的大部分数据都是希伯来语。
每当我尝试在Web或我的应用程序中使用一个Request.QueryString参数获取查询结果时,我会得到问号(????)而不是所有希伯来语字符串,英语很好并且整数很好。
我在windows server 2012 r2
标准语中有希伯来语和英语,sql server 2008 r2
,iis 6.2
包含所有更新。
THE JS CODE:
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
格式在任何编辑器中保存文件本身来解决这个问题,例如 - {{ 1}},pspad
......它一直都有效。
这次是我真正尝试过的所有东西,并且不知道。
救命,
感谢。
答案 0 :(得分:1)
替换此行
new String("SELECT * FROM contact WHERE contact.identifier = '"+user_id+"'");
从中检查
new String("SELECT * FROM contact WHERE contact.identifier = N'"+user_id+"'");
在SQL Server中处理Unicode字符串常量时,必须在所有Unicode字符串前面加上前缀N
参考:MSDN
答案 1 :(得分:0)
解决了 - 只是改变了时区LOL))