我有一個搜索窗體(與方法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