close

昨天有一個頁面出現錯誤訊息:「An error occurred translating the query string to UTF-16: 在多位元組的目的字碼頁中,沒有這個 Unicode 字元可以對應到的字元。」

確認了內容,是因為 SQL 語法裡有中文,該 PHP 檔案是 ANSI (Big5) 編碼,程式裡沒有指定語系。

在這個情境下,處理方法有兩種:

【第一種:將要執行的 SQL 轉換至與資料庫一致的編碼】

因為 PHP 檔案是 ANSI 格式存檔的,所以在 PDO 語法執行時 (PDO::prepare),把該句 SQL 用 mb_convert_encoding() 轉編碼,轉換為 UTF-8:

mb_convert_encoding($sql, "utf-8", "big5");

【第二種:將程式頁面另存為與資料庫一致的編碼】

將 PHP 檔案改以 UTF-8 存檔,原本該頁面需要印出 Big5,在印出前再予以轉換。

 

打完收工。

 

arrow
arrow
    文章標籤
    mssql php sql server
    全站熱搜

    小攻城師 發表在 痞客邦 留言(0) 人氣()