當前位置:首頁 » 編程語言 » php亂

php亂

發布時間: 2025-04-25 12:19:28

A. editplus 3.51編寫php文件時,保存為utf-8,打開顯示中文還是亂碼,用notepad++打開,顯示的是ansi編碼

要徹底解決亂碼問題,需要3個地方的編碼一致:
1,資料庫編碼,mysql_query(set names utf8);
2,就是你所說的文件編碼保存要是utf-8;
3,網頁編碼,可以兩種方式設置(1),在html文件中設置<meta http-equiv="content-type" content="type=text/html;charset=utf-8" />
(2),在php文件中設置header("Content-type:text/html;charset=utf-8");
希望對你有所幫組!

B. utf-8-新手問題phpmysql亂碼問題

解決PHP和MySQL中UTF8編碼導致的亂碼問題,需要按照以下步驟操作

  1. 配置MySQL字元集

    • 在MySQL配置文件my.cnf的[mysqld]部分添加charactersetserver=utf8mb4。
    • 重啟MySQL服務以應用更改。
  2. 檢查並修改資料庫表的字元集

    • 使用SQL查詢SHOW CREATE TABLE 表名;查看錶的字元集。
    • 如果字元集不是UTF8,使用ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;修改表的字元集和排序規則。
  3. 在PHP中設置字元集

    • 在PHP文件頂部添加mb_internal_encoding;。
    • 使用PDO連接資料庫時,指定字元集為UTF8,例如:$conn = new PDO;。
  4. 確保數據以UTF8格式編碼

    • 在執行SQL查詢和插入數據時,確保數據以UTF8格式編碼。
  5. 正確設置輸出字元集

    • 在輸出HTML頁面時,使用<meta charset="UTF8">標簽指定字元集。

通過以上步驟,可以確保PHP和MySQL之間的數據編碼一致,從而避免亂碼問題

C. 用PHP從資料庫中取出的中文是亂碼,怎麼處理能使中文正常顯示

資料庫採用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本裡面直接SELECT數據出來的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與資料庫內部編碼一致可以不設定連接編碼。
事實上MYSQL配置文件my.ini中定義了2個默認編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來分別設定默認時候客戶端連接和資料庫內部所採用的編碼。上面指定的編碼其實是MYSQL客戶端連接伺服器時候的命令行參數character_set_client,來告訴MYSQL伺服器接受到的客戶端數據是什麼編碼的,而不是採用默認編碼。
轉自:http://hi..com/delicious/item/37c18cf457dc142a753c4c0c

D. 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是沒有國家的編碼,也就是獨立於任何一種語言,任何語言都可以使用的。

(4)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

E. 中文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解碼後的字元串

F. utf8編碼的php導出CSV亂碼怎麼解決

解決亂碼的方法:首先使用iconv函數將utf8編碼轉碼為GBK,語法為「$str = iconv('utf-8' 'GBK//IGNORE' $str));」。其次,在輸出內容前先輸出BOM頭,這樣Excel可自動識別到是UTF-8。其實需求是將數據導出到Excel,PHPExcel庫雖然強大,但在內存使用上較為昂貴,對於超過10萬的數據處理在web請求中較為困難。因此,使用原生PHP導出輕量的csv仍然是有需求的。

通常情況下,將UTF-8編碼的內容導出到csv中,使用Excel打開會顯示亂碼,尤其是非主流字元或emoji表情。這是因為windows系統默認的Excel使用GBK編碼解析。現今,編碼通常都是使用UTF-8,除非是大公司知名產品為了節省流量而出有GBK等其他編碼的版本。

解決亂碼問題,通常使用PHP中的iconv函數進行轉碼為GBK,這樣默認的Excel打開就不會有問題。但對於emoji表情等主流字元,GBK並不能顯示,轉碼失敗直接為空。可以添加//IGNORE標記進行忽略,這樣只是忽略了它們,其他正常字元仍然能保留。

$str = iconv('utf-8' 'GBK//IGNORE' $str));

這可以說是一種折中方案。能否不轉碼直接輸出UTF-8?Excel是否能自動識別UTF-8並使用UTF-8來解碼顯示?答案是可以的,只是需要一個BOM頭(非windows系統中沒有這個東西),有BOM頭它就能識別到是UTF-8,否則會用默認的GBK處理,導致亂碼。正確的輸出BOM頭如下:

$fp = fopen('/test_csv.csv' 'a');fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF)); //輸出BOM頭fputcsv($fp, ['標題']);fputcsv($fp, ['解決亂碼']);fclose($fp);

以上測試結果證實,這種方法可以解決亂碼問題,並正常顯示emoji表情等非主流字元。

熱點內容
安卓手機usb偏好設置在哪裡 發布:2025-04-25 17:02:53 瀏覽:572
梁箍筋加密區間 發布:2025-04-25 17:02:10 瀏覽:423
大同忘記密碼找回多少錢 發布:2025-04-25 16:55:22 瀏覽:984
手機ip被加入黑名單限制訪問 發布:2025-04-25 16:40:51 瀏覽:730
內網的伺服器地址怎麼查 發布:2025-04-25 16:29:32 瀏覽:926
視頻緩存下載瀏覽器 發布:2025-04-25 16:21:53 瀏覽:1001
批量抖音腳本 發布:2025-04-25 15:58:10 瀏覽:836
運行極品飛車電腦要有什麼配置 發布:2025-04-25 15:51:35 瀏覽:418
sql動態傳參數 發布:2025-04-25 15:37:50 瀏覽:631
為啥keil不能編譯 發布:2025-04-25 15:20:35 瀏覽:66