在使用 ASP 連接 MySQL 資料庫時,若資料庫編碼設為 UTF-8,網頁無論加入多少 UTF-8 相關定義,仍會出現小方塊亂碼,且 SQL 中使用 LIKE 查詢中文也無法正常運作。經測試,將連接字串與網頁編碼統一設為 gb2312 即可完美解決顯示與查詢問題。
在 conn.asp 頂部加入以下指令,強制指定代碼頁為 936(gb2312):
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
Set conn = CreateObject("ADODB.Connection")
連接字串加入:DRIVER={MYSQL ODBC 3.51 Driver};database=……;CharSet=gb2312;
conn.Execute "SET NAMES gb2312;"
在 HTML <head> 區塊明確宣告字元集:
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
套用上述設定後,中文顯示正常,SQL 語句中使用 LIKE '%中文%' 亦能正確查詢。此方法適用於舊版 ASP + MySQL 環境,若專案允許,建議長期規劃遷移至 UTF-8 全鏈路支援。