【发布时间】:2017-03-28 04:18:50
【问题描述】:
我有一个搜索表单(使用 GET 方法),其中只有一个名为“search_field”的文本字段。当用户提交表单时,用户输入的字符将发布到 URL。例如,如果用户键入“blablabla”,生成的 URL 将是这样的:
results.asp?search_field=blablabla
在我的 MSSQL 2012 数据库中,我有一个名为“Products”的表,其中有一列名为“kodikos”。
我想显示包含输入字符的“kodikos”列中的所有记录。我的 SQL 选择语句 if 如下:
"SELECT * FROM dbo.Products WHERE dbo.Products.kodikos LIKE '%' + ? + '%' "
(问号是包含用户输入的字符的“search_field”。
以上所有工作都很完美,我得到了正确的结果。我面临的问题是希腊字符。例如,当用户键入“fff”时,我的代码可以完美运行并找到包含字符“fff”的所有记录。也适用于数字。但是如果用户输入希腊字符“φφφ”,我不会得到任何结果。并且有很多“φφφ”的记录。问题是希腊字符根本无法识别。
供您参考:
在具有相同 SQL 版本的本地 PC 中,我的代码可以正确识别希腊字符,因为我的区域设置是用希腊语设置的。但是美国托管服务器中的相同代码无法识别它们。
我的所有页面都采用 UTF-8 编码。
有人可以解决这个问题吗???
【问题讨论】:
-
对于使用经典 ASP 的非西欧字符集的任何人来说,这都是必不可少的阅读材料。 hanselman.com/blog/InternationalizationAndClassicASP.aspx 。注意,您使用的是参数化查询吗?如果不是,那么您很容易受到 sql 注入攻击。
-
您需要显示一些代码才能得到任何有意义的答案,您的经典 ASP 代码中查询 SQL Server 的情况如何?
-
仅仅说“我所有的页面都有UTF-8编码”是不够的,这并不意味着你不会遇到编码不匹配的问题。
-
相关A: convert utf-8 to iso-8859-1 in classic asp(阅读答案,问题标题误导).
-
相关A: Convert UTF-8 String Classic ASP to SQL Database(问题标题再次误导).
标签: sql-server utf-8 character-encoding asp-classic