本文目錄一覽:
- 1、PHP+mysql中utf-8顯示亂碼
- 2、php中用utf8編碼輸出中文就是亂碼
- 3、php連mysql用 utf-8編碼亂碼怎麼辦
- 4、PHP使用utf8插入中文數據到MySQL中文顯示會亂碼怎麼辦?
- 5、如何解決PHP在utf-8編碼下中文顯示亂碼問題?
- 6、php設置成utf-8還是亂碼了怎麼辦
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