PHP亂碼的有關問題【註:不是串連資料庫亂碼】

來源:互聯網
上載者:User
PHP亂碼的問題【註:不是串連資料庫亂碼】
環境:XP系統, PHP 5.3.4, Apache web server 2.2, mysql 5.5

PHP code
try{   $mysqli = new mysqli("localhost","username","password","db1",3306); //當mysql服務沒開啟時...   if($mysqli->connect_errno){        //註:SqlException是直接繼承Exception的自訂類。        // echo $mysqli->connect_error; //亂碼的來源...        throw new SqlException($mysqli->connect_error,$mysqli->connect_errno);    }}catch(SqlException $e){   echo $e->getMessage(); //亂碼}


當mysql資料庫服務沒啟動的時候,上面的php語句輸出一堆亂碼(錯誤號碼:2002)……

網上有調用$mysqli->query("set names gbk")等的需要使用$mysqli對象的都不行,因為$mysqli都還沒串連,調用其它函數會報錯……


(mysql資料庫正常啟動後,其它資料庫連接錯誤顯示的卻是英文,不再出現亂碼了……)

懷疑是XP系統下語系設定的問題,導致$mysqli->connect_error返回中文,結果變亂碼了……但其它類型的資料庫錯誤($mysqli->error)返回的卻是英文……

請問下這種情況怎麼處理啊?


先謝謝了~


------解決方案--------------------
在網頁上嗎? 先改變一下頁面編碼(瀏覽器菜單上)看看到底是什麼編碼及內容, utf8或gbk,
然後如果connect_errno=2002就自己轉一下編碼...


也可以用自己的message代替該資訊....


------解決方案--------------------
探討
SqlException是直接繼承Exception的自訂類。

------解決方案--------------------
是的 確實 這樣
------解決方案--------------------
首先是你PHP的網頁頭文的顯示的編碼

然後記得set name UTF-8 或者GBK 或者GB2312 但是要和網頁頭裡的一樣
------解決方案--------------------
2002 就是 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
所以你完全可以不細究.

應該和你的mysql client api的版本及設定有關

實在想知道可以照樓上嘮叨說的把資訊貼上來

探討

引用:
在網頁上嗎? 先改變一下頁面編碼(瀏覽器菜單上)看看到底是什麼編碼及內容, utf8或gbk,
然後如果connect_errno=2002就自己轉一下編碼...


也可以用自己的message代替該資訊....


1.瀏覽器裡改變成其它常用編碼完全沒變化……
2.可以那樣判斷,但是想搞清楚哪裡出問題了...

------解決方案--------------------
今天學了,,想應該是你下載的資料庫,不對漢文書處理 啊,,記得是,一個是 V6 版本,還有一個是v9
------解決方案--------------------
用記事本開啟檔案 然後點:檔案-另存新檔-編碼選擇UTF-8 最後就OK啦
------解決方案--------------------
又見亂碼問題……你確認所有的檔案格式都是UTF-8,頁面字元集也是UTF-8嗎?
------解決方案--------------------
gbk 編碼的:由於目標機器積極拒絕,無法串連。

mysql 用戶端會根據你所使用的作業系統的預設語言產生本地化的錯誤資訊
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.