php用utf8亂碼,php文件亂碼怎麼辦

本文目錄一覽:

PHP+mysql中utf-8顯示亂碼

。。。那是因為你的文件保存成了

GB2312編碼

你把文件保存成UTF-8看下

文件默認編碼是和IDE

有關的。

你從數據庫獲取的數據是

通過set

names

utf8

這個沒問題

你META設置的是UTF-8

瀏覽器也知道用UTF-8

去瀏覽

也沒問題

問題是你這個文件本身的編碼要是UTF-8才行。

php中用utf8編碼輸出中文就是亂碼

1【數據庫】-2【php代碼文件】-3【瀏覽器】

假如【數據庫】用utf8,php【代碼文件】也用utf8,【瀏覽器】查看時也用utf8。那麼恭喜你,不會出現亂碼的問題。

而最容易出問題的就是:php【代碼文件】

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

echo “中文”; //此處的【中文】兩個字的編碼類型與文件編碼類型相同。

echo iconv(‘gb2312’, ‘utf-8’, ‘中文’); //此處則將【中文】兩個字在【輸出】時轉換成了utf8,所以不會出現亂碼了(假設用win記事本默認存儲為gb2312)。

php連mysql用 utf-8編碼亂碼怎麼辦

如果設置了set names utf8還是亂碼的話,你需要看看數據庫的編碼格式了,亂碼產生的原因,是因為存放時的編碼和取出數據展示的編碼不一致,導致的不能正常顯示,你先查看數據庫的編碼合適,存放數據庫開始檢查

PHP使用utf8插入中文數據到MySQL中文顯示會亂碼怎麼辦?

數據庫使用utf8編碼,需要在操作的過程中統一全部編碼。

1.數據庫默認編碼

CREATE DATABASE `test` DEFAULT CHARACTER SET ‘utf8’;

2.表默認編碼

CREATE TABLE `tablea`(

    `id` INT NOT NULL AUTO_INCREMENT,

    `title` VARCHAR(100) NULL,

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.字段默認編碼

默認情況下,字段的編碼同表的編碼,但是如果修改了表的編碼,字段編碼不會同步修改,需要手動修改

這裡修改編碼測試我將utf8 改為 gb2312  ,僅用於觀察修改後的情況(實際使用中可能是將gbk修改為utf8)

ALTER TABLE `test`.`tablea` CHARACTER SET = gb2312 ;

— 修改表編碼後,查看建表語句

show create table `tablea`;

— 可以看到輸出的建表語句中字段單獨設置了編碼

CREATE TABLE `tablea`(

    `id` INT NOT NULL AUTO_INCREMENT,

    `title` VARCHAR(100) CHARACTER SET utf8 NULL,

)ENGINE=InnoDB DEFAULT CHARSET=gb2312;

— 需要手動修改字段編碼

ALTER TABLE `tablea` 

CHANGE COLUMN `title` `title` VARCHAR(100) CHARACTER SET ‘gb2312’ NULL DEFAULT NULL ;

4.當前數據庫連接的編碼

連接數時設置編碼

// PDO 連接

$db = new PDO(‘mysql:host=myhost;dbname=test’, ‘login’, ‘password’, 

    array(PDO::MYSQL_ATTR_INIT_COMMAND = ‘SET NAMES \’UTF8\”)

    ); 

    

// mysqli連接

$link = mysqli_connect(“127.0.0.1”, “my_user”, “my_password”, “test”);

mysqli_query($link,”SET NAMES ‘utf8’;”);

通過以上幾步操作,基本可以保證數據庫使用過程中不會出現亂碼

如何解決PHP在utf-8編碼下中文顯示亂碼問題?

如果php文件已經在頭部設置編碼格式為utf-8,在運行的時候還出現亂碼問題,可能是由於文件編碼格式不匹配或者頭部有bom信息輸出導致亂碼。解決辦法:

設置保存文件編碼格式為utf-8;

去掉文件頭部bom信息;

php設置成utf-8還是亂碼了怎麼辦

有時後php代碼裡邊設置了“header(“Content-type:

text/html;

charset=utf-8″);”不一定會管用,因為有時文件本身格式就是錯誤的,你先把代碼複製到一個txt文件裡邊,然後用代碼工具對php文件進行轉碼成utf-8格式(這時你就會發現裡邊的代碼亂碼了,由其是中文和特殊字符),再把txt裡邊的代碼複製覆蓋原來的php文件內容,然後保存即可,例如用Notepad++

工具

可以對文件本身進行轉碼

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/227763.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 16:32
下一篇 2024-12-09 16:32

相關推薦

發表回復

登錄後才能評論