簡體   English   中英

ASP,MySQL和UTF-8

[英]ASP, MySQL and UTF-8

首先,我已經閱讀了幾乎所有關於此的主題。 我已經嘗試了所有的建議,但我無法解決這個問題。

這就是事情。 我將Classic ASP和MySQL用於項目。 一切都很好。 如果我寫(例子)Response.Write(“ĞŞÜÇÖİ”)它就像一個魅力。 但如果該字符串來自數據庫,我會看到“ÄÅÜÇÃÄ°”而不是“ĞŞÜÇÖİ”。 當我用phpMyAdmin看這個時,沒關系。

我使用Dreamweaver CS6。 我保存所有頁面Unicode(UTF-8)。 我在一個包含文件中寫了Session.CodePage = 65001,Response.CodePage = 65001,Response.Charset =“utf-8”,每個頁面都將它放在頂部。 我寫過meta charset utf-8。 我使用ODBC 5.2 x64驅動程序,我的連接字符串有charset:UTF8;。 並且所有MySQL設置都是utf-8(表格,字段,所有內容)。

好吧,我不想使用其他編碼,字符集。 我做錯了什么? 看來,這是關於數據庫的。 問題是什么?

您需要使用charset參數在連接字符串中指定字符集; 看到MySQL ODBC doco 例如,添加 “charset = utf8;” “字符集= UCS2;” 到您的連接字符串。

編輯:我終於有機會在這上運行一個簡單的測試工具,它確實失敗了charset = utf8。 但是,由於VBScript在內部運行UCS2,我嘗試使用charset = ucs2,它運行正常。 注意:頁面仍設置為以UTF-8發送所有輸出,只是VBScript使用UCS2從ODBC連接中提取數據。 工作完成了:)

甚至你的連接應該是UTF8。 在運行其他查詢之前運行此查詢

set names 'utf8'

SET NAMES指示客戶端將用於將SQL語句發送到服務器的字符集。 因此,SET NAMES'cp1251'告訴服務器,“來自此客戶端的未來傳入消息是字符集cp1251。”它還指定了服務器用於將結果發送回客戶端的字符集。 (例如,如果使用SELECT語句,它指示要用於列值的字符集。)

SET NAMES'x'語句相當於這三個語句:

SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;

僅供參考: 手動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM