導航:首頁 > 編程語言 > php傳遞中文亂碼

php傳遞中文亂碼

發布時間:2025-01-06 20:48:15

① 中文url編碼、base64編碼,php解碼中文部分亂碼

如果兩端伺服器頁面使用的編碼不一致,就會導致亂碼

如你所說,對方伺服器發來的是GBK編碼的內容,如果你本地PHP用的編碼不是GBK就會是亂碼

2種解決方案:

  1. 將頁面編碼更改為GBK(可以通過header('Content-Type:text/html charset=gbk');)

  2. 將GBK編碼轉為當期頁面編碼(假設當前頁面是utf-8),可以使用iconv('gbk','utf-8',$content);其中$content是你經過urldecode、base64解碼後的字元串

② PHP 輸出簡單的中文 亂碼問題

解決php中中文亂碼問題方法

  1. php文件本身的編碼與網頁的編碼應匹配


    a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312"),靜態頁面添加<metahttp-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。


    b. 如果欲使用utf-8編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=utf-8"),靜態頁面添加<metahttp-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轉碼。

  3. 如果你的HTML文件文件出現了亂碼問題,那麼你可以在head標簽裡面加入UTF8編碼(國際化編碼):UTF-8是沒有國家的編碼,也就是獨立於任何一種語言,任何語言都可以使用的。

(2)php傳遞中文亂碼擴展閱讀:

解決PHP 輸出簡單的中文 亂碼問題的其他方法:

在php的echo前面加入header("Content-Type:text/html;charset=gb2312")

把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312

③ 為什麼使用php GD庫圖片輸出中文字會出現亂碼

原因:
1、伺服器編碼原因。由於imagettftext函數字元串參數的默認編碼是UTF8,如果伺服器編碼不一致,而又沒有進行相應的字元編碼格式轉換,很容易出現使用gd庫輸出圖片時中文字元變成亂碼。
2、沒有選擇正確的TTF字體文件。使用gd庫時如果要輸出中文字元,需要選擇正確的TTF字體文件。

解決方法:
根據之前介紹的php gd庫產生中文亂碼的原理,解決php gd庫中文亂碼的方法其實很簡單。
1、建議整站使用UTF8編碼,如果你已使用的是GB2312或GBK編碼,請使用iconv或自定義的gb2312與utf8轉換函數進行字元編碼轉換。gb2312與utf8轉換函數請參考PHP Ajax傳值中文字元亂碼如何解決。
2、如果你是剛進行php環境搭建,建議將Apache配置文件中的默認字元集修改為UTF8,即AddDefaultCharset UTF8。
3、如果上述方法還不行,請檢查你在編譯gd庫時是否添加了–enable-gd-jis-conv選項,此選項是為了讓gd庫支持日文編碼的字型檔,請取消此選項並重新編譯。此方法我沒驗證過,估計主要是針對Unix下安裝配置php環境。Windows環境一般不會出現這種情況,似乎默認PHP配置文件是注釋掉的。
4、使用php gd庫產生中文亂碼的另一個原因是沒有選擇正確的TTF字體,你需要選擇支持中文的字體,常用的中文字體文件是simsun.ttc和simhei.ttf。
OK,只要按照上述方法,基本上使用php gd庫產生中文亂碼時都能夠解決。只要仔細排查其實gd庫的中文亂碼解決起來非常方便。

④ php顯示中文亂碼

php資料庫中文亂碼的解決辦法:1、創建資料庫時,規定字元類型為uft8;2、創建表時,規定字元類型為utf8;3、在PHP的MySQL連接函數中,添加語句「mysql_query("set names 'utf8'")。

⑤ 如何解決php中文參數傳遞亂碼情況

php用中文參數沒問題的 問題出在別處 比如顯示頁的編碼 如果你找不到問題所在 可以用 base64_encode($tag)處理一下$tag 接收的時候再用 base64_decode($tag)即可

閱讀全文

與php傳遞中文亂碼相關的資料

熱點內容
文稿怎麼加密分享 瀏覽:954
喵影工廠手機app怎麼保存圖 瀏覽:624
蘋果維修信息可不可以加密收藏 瀏覽:337
單簧管pdf 瀏覽:331
word轉pdf注冊碼 瀏覽:459
普通程序員怎麼進全棧工程師 瀏覽:566
途安14t壓縮比 瀏覽:357
kmp演算法next值 瀏覽:997
格力潤享空調壓縮機 瀏覽:747
文件夾怎麼刪除被另一個程序打開 瀏覽:719
pdf改字體顏色 瀏覽:839
單片機原理及應用實驗 瀏覽:414
應用加密關了怎麼不顯示消息內容 瀏覽:706
華為本地鈴聲音樂文件夾是哪個 瀏覽:98
php項目開發經驗 瀏覽:15
銳明伺服器格式是什麼 瀏覽:31
單片機顯示實驗 瀏覽:549
心理學史pdf 瀏覽:471
把cad轉成pdf 瀏覽:661
和平精英國際服伺服器換錯怎麼辦 瀏覽:15