① windows 涓嬬敤嫻忚堝櫒璁塊棶榪滅▼linux鐨凱HP欏甸潰鑻辨枃鏄劇ず姝e父錛屼絾鏄涓鏂囦貢鐮侊紝鎬庝箞瑙e喅鍛錛
鎶婃祻瑙堝櫒欏甸潰鐨勫瓧絎﹂泦鎹㈡垚utf-8璇曡瘯銆傛垨鑰呭湪linux鐨刾hp欏甸潰涓婂0鏄庡瓧絎﹂泦涓簎tf-8銆
② linux下apache2和php亂碼問題
# # 完全原創 # #
windows上倒是遇見過很多中亂碼,但有些部分應該是差不多的。有參考其他資料,但沒有直接復制大段文字,是自己一點點總結出來的。希望能夠幫到你。影響因素較多,一一列出1. apache的httpd.conf中有默認編碼的設置 ,例如 AddDefaultCharset utf-8,這個會有一定影響
2. php的php.ini中也有默認編碼的設置,例如default_charset = "utf-8",只能有一個默認編碼
3. 資料庫欄位使用的編碼:如果是Latin很容易亂碼的
4. php源代碼文件的編碼:源代碼在開發過程中,文本存為文件本身也是有編碼方式的。
5. php代碼中使用header控制編碼(可以省略)
<?php
header(「Content-Type: text/html; charset=utf-8");
?>
6. 網頁前台的編碼
html代碼中的meta <meta http-equiv="content-type" content="text/html;charset=utf-8">
實際應用中,改變伺服器設置不現實,尤其是租伺服器,主機提供商不會幫你改的
因此,從3456入手,而且各個部分應該一直、匹配。
也就是說,資料庫用了utf-8,那麼源碼也存成utf-8,網頁前台也content="text/html;charset=utf-8"附加說明:
第4點:
一般IDE(例如ZendStudio)是可以指定代碼編碼的,但是有一些例外:
使用Win7的記事本修改後,存為utf-8,會加入windows特有的utf-8標記「BOM」,這是微軟為了標記編碼在文件頭加的額外信息,這樣的源代碼被執行後,BOM會發往客戶端!客戶端收到的網頁開頭是亂的,因為BOM打亂了內容編碼的解析
在Mac上使用編輯工具修改源代碼後,代碼的存儲編碼會發生較大變化,本人在於團隊合作過程中也因此出現較多問題,不推薦使用系統(win/mac)自帶的一些文本編輯工具(即使他們有代碼高亮或代碼提示)
使用成熟的IDE是很不錯的辦法第5點:
用header控制編碼要注意和其他設置頭(header)的操作的前後關系,容易導致 「無法修改已發送的頭」的錯誤
用這個其實有時候實屬無奈,但很有效第6點:
請把<meta http-equiv="content-type" content="text/html;charset=utf-8"> 放到<title></title>之前!!
因為如果title包含中文,很可能悲劇。本人遇到過兩次整站直接空白無法顯示出來的問題,就是因為次序問題。
③ 如何解決linux顯示中文亂碼
1、查看當前系統語言:
登陸linux系統打開操作終端之後,輸入echo$LANG可以查看當前使用的系統語言。
2、查看安裝的語言包:
查看是否有中文語言包可以在終端輸入locale命令,如有zhcn表示已經安裝了中文語言
3、如果沒有中文語言呢?
可以通過網上下載安裝中文語言包yumgroupinstallchinese-support(不能聯網的通過其他電腦下載,上傳上去吧)
4、如何修改系統語言為中文
1 臨時更換語言
如果只是臨時更換linux系統的語言環境,可以通過輸入設置LANG=語言名稱,如中文是
Zn_CN.UTF-8(注意我這里本來就是中文的,我臨時設置為英文
5、修改系統默認語言:
以上方法是通過修改設置系統默認的語言配置
如Vi/etc/sysconfig/i18n(注意改好之後重啟一下系統)
6、其他注意事項:
如果按照以上方法設置修改設置中文語言還是不行的話,注意您的鏈接終端選擇的編碼。
如xshell為例,把終端的編碼選擇中文,或者UTF8即可
注意事項:
以上經驗是Centos系統的操作方法,其他發行版的linux命令可能有所不同(絕大多少的都是這樣操作喔)注意改了默認配置之後需要重啟系統
本經驗為咗嚛原創操作截圖,網路經驗首發。未經許可,謝絕轉載!如果有疑問請給小編留言,謝謝多多支持!
④ linux系統上出現亂碼怎麼解決
linux 中文顯示亂碼解決辦法, 其實是有多種情況的, 有一部分是由於終端默認的設置造成的
vi /etc/sysconfig/i18n
將內容改為
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
將內容改為
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
不用重啟,馬上就生效.
這樣中文在SSH,telnet終端一般可以正常顯示了。
如果還是不行,可以這么做:
1、console終端亂碼
在/etc/profile文件的最後一行添加如下內容:
export LC_ALL="zh_CN.GB18030"
2、xwindow終端亂碼
在/etc/sysconfig/i18n文件的最後一行添加如下內容:
export LC_ALL="zh_CN.GB18030"
⑤ 如何解決PHP中文亂碼問題
PHP中文亂碼主要是編碼不對,存在以下兩種情況,你以此檢查一下 ,改對編碼就行了
1、 php文件本身的編碼與網頁的編碼應匹配
a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。
b. 如果欲使用utf-8編碼,那麼php要輸出頭 :header(「Content-Type: text/html; charset=utf-8"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的編碼格式為utf-8。保存為utf-8可能會有點麻煩,一般utf-8文件開頭會有BOM,如果使用 session就會出問題,可用editplus來保存,在editplus中,工具->參數選擇->文件->UTF-8簽名,選擇總 是刪除,再保存就可以去掉BOM信息了。
2. php本身不是Unicode的,所有substr之類的函數得改成mb_substr(需要裝mbstring擴展);或者用iconv轉碼。