關於PHP檔案及編碼的有關問題
來源:互聯網
上載者:User
關於PHP檔案及編碼的問題
1:PHP代碼檔案本身的編碼格式,是GB或者UTF8會影響什麼?
2:PHP代碼檔案中是混雜的,有GB又有UTF8會導致什麼樣的不好結果麼?
3:PHP語言中的字串編碼格式是什麼?(比如C語言就是ASCII,但C#就是UNICODE,不知道PHP是什麼)
4:PHP代碼檔案的編碼格式跟MYSQL的資料庫字元編碼格式不同會導致什麼不好的結果麼?
5:MYSQL本身的編碼格式會影響輸出到頁面上的文字的效果麼?
問題好像有點多了,請大家指教,非常感謝.一定及時結帖給分.
------解決方案--------------------
1:PHP代碼檔案本身的編碼格式,是GB或者UTF8會影響什麼?
只要與 html 語言聲明不衝突,就沒有關係
2:PHP代碼檔案中是混雜的,有GB又有UTF8會導致什麼樣的不好結果麼?
多半會差生“亂碼”,而使你無所適從
3:PHP語言中的字串編碼格式是什麼?(比如C語言就是ASCII,但C#就是UNICODE,不知道PHP是什麼)
由你決定
4:PHP代碼檔案的編碼格式跟MYSQL的資料庫字元編碼格式不同會導致什麼不好的結果麼?
只要通知 mysql 需要什麼編碼的內容,沒有不好的結果
5:MYSQL本身的編碼格式會影響輸出到頁面上的文字的效果麼?
不會
------解決方案--------------------
1.一個人的血型是 O 或者A 會有什麼影響?
2.一個人的血型又是O 又是A 某個時候是正常的 比如可能產生了稀有血液,大多數時候是直接死亡。
3.php你就是造物主 你想怎麼造就怎麼造.
4.不同會讓你戴上1000度的眼鏡也無法看明白那串亂碼到底是什麼... 當然改造一下眼鏡問題也就解決了。
5.資料庫就是你的彈倉,如果你不一哆嗦...那麼他不會發射出來,他會老老實實的獃著,直到....你覺得足夠興奮,你要輸出了.這個時候你才要考慮編碼格式的事情.正確的解決方案就是 在建這個彈倉的時候 先考慮好所有編碼的統一,就萬事具備了。
------解決方案--------------------
程式檔案用什麼編碼無所謂,只要相容ASCII就行。關鍵是資料庫儲存用UTF-8就行
------解決方案--------------------
首先檔案本身的編碼格式要指定,並且項目中要統一。其次就是參數編碼也要指定統一,否則中文會亂碼。與mysql的編碼不一致,要麼設定mysql資料庫的編碼集要麼用php轉碼函數轉碼,否則中文亂碼
------解決方案--------------------
大神來了。(- -#)
原始碼中的字面常量字串的編碼直接受原始碼檔案編碼控制,舉例:
$str = "你好嗎";
1,如果是GBK編碼儲存的這三個漢字,那麼硬碟上實際佔用了6個位元組。
2,如果是UTF8編碼儲存的這三個漢字,那麼硬碟上實際佔用了超過6個位元組。
假如檔案是UTF8儲存的,那麼你希望轉化這個字串為GBK的,並發給瀏覽器。
那麼mb_convert_encoding($str, "utf8", "gbk")就會得到一個gbk編碼的“你好嗎”,而你這個函數的調用的效果就是告訴PHP解譯器:這個字串裡的位元組是UTF8編碼的,你得按照UTF8編碼解釋這一段位元組,並將這三個字元轉化成GBK編碼的6個位元組。
之後echo輸出到瀏覽器,並content type告訴瀏覽器這一段位元組是gbk的,請按照gbk編碼去解釋這6個位元組。
------解決方案--------------------
看了你這邊說的有點暈....
CI的代碼...如果沒有記錯,應該都是英文等...
新浪的開放平台不知道,但是一般情況下,代碼也應該都是英文及符號等....
對於127以下的ascii字元,包括英文及符號,數字, 他們的ascii碼和utf8碼是完全一樣的....
所以可能不存在你說的需要統一的問題
探討
呵呵,樓上的解釋真油菜~
其實現實情況是這樣的,我的一個PHP項目,使用的是CI架構,它的代碼本身是ANSI編碼的,然後我們的項目裡面又調用了新浪的開放平台介面,它提供的介面代碼又是UTF-8的,這該如何是好?難道手動統一一遍?
請大神們救命~謝謝
------解決方案--------------------
怎麼處理?改成統一的編碼
當然你也可以給 php 部分請個翻譯。php 提供了 mb_string 和 iconv 兩個函數組,都可以方便的解決你的問題
------解決方案--------------------
探討
1:PHP代碼檔案本身的編碼格式,是GB或者UTF8會影響什麼?
只要與 html 語言聲明不衝突,就沒有關係
2:PHP代碼檔案中是混雜的,有GB又有UTF8會導致什麼樣的不好結果麼?
多半會差生“亂碼”,而使你無所適從
3:PHP語言中的字串編碼格式是什麼?(比如C語言就是ASCII,但C#就是UNICODE,不知道PHP是什麼)
由你決定
4:PHP代碼檔案的編碼……
------解決方案--------------------
探討
1:PHP代碼檔案本身的編碼格式,是GB或者UTF8會影響什麼?
2:PHP代碼檔案中是混雜的,有GB又有UTF8會導致什麼樣的不好結果麼?
3:PHP語言中的字串編碼格式是什麼?(比如C語言就是ASCII,但C#就是UNICODE,不知道PHP是什麼)
------解決方案--------------------
探討
可是還是碰到一個問題,就是一個項目中,如果有一部分PHP檔案中含了中文字元,比如要echo出一些文本到頁面,然後另一個PHP檔案中也包含了中文,但這個檔案是UTF-8編碼的,在輸出的時候按前面各位講的方法可以控制,但是用IDE編輯代碼的時候就比較痛苦,比如NetBeans,要指定一個項目的編碼格式,如果指定為ANSI,那UTF8那些頁面編輯時就顯示亂碼,如果指定為UTF8那麼有ANSI編碼的那些檔案編輯時就顯示為亂碼,所以很不方便.今天又試了一下VS.PHP,還沒確認是否可能規避這個問題.