我有一个搜索窗体(与方法GET)只有一个名为“search_field”的文本字段。当用户提交表单时,用户字符输入的内容会发布到URL中。例如,如果用户键入“blablabla”生成的URL将是类似的东西:编码错误读取希腊字符字符串形式SQL数据库
results.asp?search_field=blablabla
在我的MSSQL数据库2012我有一个表命名为“产品”有它命名为“kodikos”一栏。
我想显示包含输入字符的列“kodikos”中的所有记录。我的SQL SELECT语句,如果以下几点:
"SELECT * FROM dbo.Products WHERE dbo.Products.kodikos LIKE '%' + ? + '%' "
(问号是“search_field”包含用户的字符输入
以上所有作品完美,我得到正确的结果。我面对的问题是希腊字符,例如,当用户键入“fff”我的代码完美并找到所有包含字符“fff”的记录时,也可以使用数字完美匹配,但如果用户输入希腊字符“φφφ”我没有得到任何结果,并且有很多“φφφ”的记录。问题是希腊字符根本不被识别。
为了您的信息:
在本地PC与相同版本的SQL希腊字符用我的代码正确识别的,因为我的区域设置在希腊设定。但是美国托管服务器中的相同代码无法识别它们。
我的所有页面都有UTF-8编码。
有人可以有任何想法来解决这个问题?
这对于任何使用非西欧字符集与经典ASP。 https://www.hanselman.com/blog/InternationalizationAndClassicASP.aspx。注意,您是否使用参数化查询?如果你不是,那么你很容易受到SQL注入攻击。 – John
在获得任何有意义的答案之前,您需要展示一些代码,在经典ASP代码中如何查询SQL Server? – Lankymart
只说*“我的所有页面都有UTF-8编码”*是不够的,这并不意味着您不会有编码不匹配。 – Lankymart