熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

編程亂碼問題初步探索[1]

2013-11-13 12:39:11  來源: SQL語言 

  亂碼的問題分為很多種很多人一見到有亂碼就開始罵mysql其實很多情況下並不是mysql造成的

  從亂碼產生的原因來分析亂碼的產生一般有以下幾種情況

  網頁編碼與程序編碼不一致的問題

  所謂的網頁編碼問題就是指你的html代碼中定義的charset例如以下這段代碼

<head>

<title>Chat Tutorial Application</title>

<meta httpequiv=ContentType content=text/html; charset=UTF />

<meta name=language content=en />

<meta name=author content=Padraic Brady />

<link rel=stylesheet href=public/styles/chatcss type=text/css />

<script src=public/javascript/scriptaculous/lib/prototypejs

type=text/javascript></script>

<script src=public/javascript/scriptaculous/src/scriptaculousjs

type=text/javascript></script>

<script src=javascript/chatjs type=text/javascript></script>

</head>

  他設置了浏覽器端采用gb的字符集此時如果程序使用的是utf的編碼(就是指以什麼樣的編碼來編寫的程序一般在編輯器中設置)那麼就會產生亂碼

  此時的解決方法就是把charset的值改為utf

  代碼本身就存在亂碼問題

  這種情況是指你的代碼本身就存在亂碼問題照成這種情況的原因一般是你以另一種編碼格式修改了你的代碼後並做了保存這樣你的程序中就有幾種編碼形式的代碼那麼輸出的時候自然就會有亂碼這類問題相對來說比較容易解決只要人工找到那段有亂碼的代碼然後修改就行了(很多編輯器可以完成這個工作)

  mysql的問題(此次討論僅圍繞mysql之後的版本展開)

  現在再來看最容易照成亂碼也是最容易讓人迷糊的mysql亂碼問題

  要說mysql亂碼得先從mysql的幾個參數說起從mysql開始多了幾個設置字符集的系統變量

character_set_client 客戶端字符集 character_set_connection 客戶端與服務器端連接采用的字符集 character_set_results SELECT查詢返回數據的字符集 character_set_database 數據庫采用的字符集

  亂碼問題一般是由於以上幾個變量設置錯誤照成的很多人在請教亂碼問題的時候一般都會得到一個這樣的答案你先set names一下

[]  []  


From:http://tw.wingwit.com/Article/program/SQL/201311/16314.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.