我正在做以下。如何保持字符編碼與數據庫查詢
1)我導出數據庫並將其保存到名爲dump.sql的文件中。 2)然後通過PHP ftp將文件傳輸到不同的服務器。 3)成功傳輸文件後,管理員可以選擇在新主機上運行「dbtransfer」腳本。 4)該腳本打開腳本並逐行運行查詢。
這很好 - 但是外語編碼有問題。我們正在使用UTF-8。
第1步:這工作正常,文件是以UTF-8格式。 第3步:當我使用mb_check_encoding()測試dump.sql文件的內容時。該字符串以UTF-8形式返回。 第4步:這將創建具有utf8_general_ci編碼的表。這些信息被轉存。
當我在傳輸後查看錶格時,我收到了這樣的記錄:'ç,LJ,ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃà ,AY,AZ」。我不明白UTF-8字符串在進入數據庫時如何失去其編碼。我錯過了一步嗎?我是否需要運行某種函數來確保字符串被解析爲UTF-8?
一旦系統安裝,我可以保存外語查詢。這只是轉移,搞亂了。
任何想法?