php開發網站編碼統一問題

  一個良好的網站代碼整潔,註釋適當是最基本的,也是好的習慣,這能夠避免之後的很是亂了本身感受都亂,一旦重構麻煩就大了耗時耗力,其中網站整個體系的編碼是最重要的一個方面,爲了網站的穩定性建議php程序,HTML頁面,css和js文件,數據庫編碼所有爲utf-8編碼,這樣保證網站在任何位置被訪問都可以正確顯示,固然也能夠用gb2312或者gbk的編碼佔用空間小一些,但注意也要編碼統一,不同的要轉換。php

  一、首先HTML文件,文件自己編碼是由編輯器所決定的,無論你用實體仍是十六進制編碼都和頁面編碼是獨立的沒有關係,這裏編輯器都要設置成純utf-8和gb2312的,不要帶BOM頭不然有時候會出現問題,vim、sublime Text、gedit編輯器都是默認純正的utf-8編碼,頁面編碼肯定爲utf-8編碼以後,咱們還要用<meta>標籤來設置頁面編碼,傳送至http頭,以便瀏覽器正確解析,代碼以下:css

<meta charset="utf-8">

這種寫法是HTML5標準寫法,目前瀏覽器都支持,不用再像HTML4中寫那麼長了html

  二、而後就是php文件,仍是文件自己編碼要肯定,若是php標記是嵌入在HTML中的,那麼和1中同樣建議在<meta>標籤中聲明,若是是php類文件,則不用聲明編碼,保持文件自身編碼便可,不嵌入HTML的php腳本每一個文件必須聲明編碼,都在php文件的第一行,用header()函數向http頭設置編碼,代碼以下:mysql

header("Content-Type:text/html; charset=utf-8");

這樣就好了sql

  三、CSS和獨立的JavaScript編碼,這個不用聲明,文件自己用utf-8編碼寫就行,他們默認是utf-8編碼特別是JavaScript傳遞參數時傳遞的是utf-8編碼,若是頁面或者數據庫是gbk編碼,那麼要進行轉碼。數據庫

  四、數據庫編碼,創建數據庫的時候通常要設置字符集,咱們都保持統一設置成utf8系列的就行,通常選擇utf8_general_ci這個字符集,而後用php鏈接數據庫並選擇數據庫以後,必定要設置數據庫編碼,設置代碼以下:vim

mysql_query('set names utf8');

  五、若是是和其餘網站交互或者抓取網頁與本身網站編碼不一致,那麼須要進行轉換編碼以及URL編碼解碼的操做,字符編碼咱們能夠用iconv()函數或者mb_convert_encoding()函數進行編碼轉換,若是發送到URL要用urlencode()和urldencode()函數進行編碼和解碼,重點是弄清楚咱們本身網站文件編碼、聲明頭編碼、請求參數等等全部編碼都是統一的,和其餘網站交互只要轉換成和他們網站同樣的編碼就行啦,而後靈活運用這些函數就沒問題了,其餘的交給瀏覽器來完成,咱們直接向瀏覽器發送字符或者URL編碼都OK,關鍵是編碼一致瀏覽器

 

    通過以上幾步編碼就統一了,對於整個網站的亂碼問題基本上就能夠解決了,這個剛開始不容易理解,多練習多思考天然就能夠掌握好了編輯器

相關文章
相關標籤/搜索