PHP使用utf8插入中文資料到MySQL中文顯示會亂碼怎麼辦

時間 2021-08-30 09:30:55

1樓:匿名使用者

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

create database `test` default character set 'utf8';

create table `tablea`(

`id` int not null auto_increment,

`title` varchar(100) null,

)engine=innodb default charset=utf8;

預設情況下,欄位的編碼同表的編碼,但是如果修改了表的編碼,欄位編碼不會同步修改,需要手動修改

這裡修改編碼測試我將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 ;

連線數時設定編碼

// 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插入 資料到mysql出現亂碼的?

2樓:匿名使用者

mysql會出現中文亂碼的原因不外乎下列幾點:

1.server本身設定問題,例如還停留在latin12.table的語系設定問題(包含character與collation)

3.客戶端程式(例如php)的連線語系設定問題強烈建議使用utf8!!!!

utf8可以相容世界上所有字元!!!!

linux下mysql插入中文顯示亂碼解決方案mysql -uroot -p 回車輸入密碼解決方案:

mysql>user mydb;

mysql>alter database mydb character set utf8;!

另一種方法是直接修改預設的mysql配置檔案在debian環境下,徹底解決mysql無法插入中文和中文亂碼的辦法上面提到了用臨時方法更改資料庫的字符集設定,顯示中文,但是後來發現在有的系統下並不能成功,比如我用的debian 7.0,找了好久終於找到一個適合debian系統的解決方案,debian 7.0下測試成功,其他諸如修改client和mysql加入default-character-set=utf8的方法之類的,只適用與5.

5以前的系統!

3樓:匿名使用者

$result=mysql_query($query)or die (" error in query :$query.".mysql_error());這句之前寫上:

$r=mysql_query('set names utf8');

over。

php向mysql資料庫插入的utf8編碼的中文變成亂碼

4樓:虎爺可樂

**是沒發現問題了,看你的表欄位是不是定義的 utf8 編碼了

5樓:審計拍

你這幾個函式是原生的php函式麼 貌似不是吧

使用php向mysql資料庫插入中文資料時,頁面中文顯示正常,但是資料庫裡面確實亂碼,該怎麼解決?

6樓:匿名使用者

這個問題不大。

主要匯出來是亂碼才問題。

你檢查過頁面是不是utf8的沒有,不行最上面加上<?php

header("content-type: text/html; charset=utf-8");//好像是utf-8,你可以試試utf8,gb2312總有一個可以的啦。

?>

你在資料庫裡看,你在資料庫裡打:

set names utf8

吧要是要顯示在到頁面你才用mysql_query('set names utf8');

再說一件事,資料庫裡亂碼好像還是比較常見的(只要是用那個phpmyadmin)

運作沒問題都沒事的。

7樓:匿名使用者

配置環境 資料庫建立 和 程式設計環境 編碼同時都設定成一樣的就沒問題了

8樓:呼倫貝爾品三農

可能你建立的資料庫不是utf8的,重新再建個資料庫試試

php插入mysql資料庫中文變成亂碼 問號

9樓:℡媙の綺

去mysql裡面設定,不要在php裡設定mysql的編碼,亂碼肯定就是編碼問題無疑,推薦你先把mysql裡面表的編碼改好,然後再把php的編碼改好,這樣就應該沒問題了。

我寫的php頁面是gbk字符集,做了個插入頁面,中文到mysql的時候就亂碼。我需要怎麼做?php

10樓:匿名使用者

設定資料庫編碼

mysql_query("set names gbk");

11樓:

對,改下mysql編碼,統一編碼就不會亂碼了

12樓:嚶其鳴矣求其友

mysql設定為gbk格式的就可以了

13樓:匿名使用者

msyql,php, html等,統一編碼即可

求救!表單通過php提交資料到mysql中文亂碼

14樓:匿名使用者

1、頁面**裡面要設定charset=utf-82、儲存頁面檔案時要編碼格式為utf-8

3、資料庫有關的表、欄位、的編碼為utf8-general-ci還不對的話,看下面。

我是這樣解決的:

$dbh = new pdo('mysql:host=localhost;dbname=test','root','');

$dbh->exec("set names 'utf8';");

或者沒用pdo

mysql_query("set names 'utf-8'");

15樓:小小幽魂

提交到資料庫之前..先提交這樣一條 sql 命令

set names 'utf8';

再繼續你的插入操作.

16樓:匿名使用者

別講得這麼專業,哥差點沒聽明白。。

亂碼無非有三

第一個,看資料庫的較接編碼

第二個,看頁面編碼是否正確

第三個,檔案儲存編碼是否正確

解決方法,自己一個一個檢查  如果傳輸過來的編碼就有問題,可以使用iconv函式轉編碼。

具體問題,自己找原因。

自己那一天起,哥從來沒看過亂碼。哈哈

php向mysql插入漢字亂碼。各種編碼已全部設為utf8.在phpmyadmin中插入漢字則可在網頁上正常顯示。怎麼辦?

17樓:匿名使用者

根據你自己選擇的字符集,用php連結資料庫的時候設定下字符集:"set names 'utf8';"

我是用的php pdo類:

$dbinfo = array ('db' => 'mysql:host=localhost;dbname=mydb',

'dbuser' => 'user','dbpassword' => 'password');

$dbh = new pdo($dbinfo['db'],$dbinfo['dbuser'],$dbinfo['dbpassword'] ,array (pdo::mysql_attr_init_command => "set names 'utf8';"));

18樓:匿名使用者

如果要讓頁面支援全屏,需要新增3行**,但是每次編譯後新生成的html檔案會覆蓋原來的,很麻煩。所以直接將工程的 9

html-template目錄下的index.template.h6tml改掉,主要以後每次都會以此為模板生成html檔案。

全屏需要如下**:

"allowscriptaccess","samedomain",

"allowfullscreen","true", //增加這行

allowscriptaccess="samedomain"

allowfullscreen="true"//增加這行

19樓:翩翩葉隨風

把資料庫編碼選成gbk

然後在,php裡

mysql_query("set names 'gbk'");

這樣一般就不會亂碼了。

20樓:士海倫

全部改為gbk 在連線資料庫時

url用"jdbc:mysql://localhost/你的資料庫?

不知道怎麼回事,一個用gbk 另一個用utf8就可以了全部utf-8好像的確不行

21樓:匿名使用者

我記得php.ini中有設定吧

22樓:匿名使用者

你在mysql中建立表的時候設定對不對?

php mysql 資料庫顯示插入成功後 資料中 插入中文 是亂碼 utf8 gbk32 都不行

23樓:

看資料庫的字元如果是gbk那麼就

mysql_query("set names gbk");

如果是utf8那麼就

mysql_query("set names utf-8");

24樓:匿名使用者

php+mysql插入資料庫後亂碼,主要原因是字符集不一致。

php檔案儲存一個字符集;

php**中一個字符集;

連線資料庫物件可以指定一個字符集;

mysql也有字符集。

檢查你的字符集設定,保證4個字符集相同。在設計初期就應該選擇好字符集了,而不是發現問題再找原因,這是很麻煩的一件事。

25樓:

保持一致:

a.資料庫、表、欄位字符集

b.**檔案字符集

c.**中連線資料庫是指定的字符集

d.**中sql語句的字符集(若是頁面提交過來拼接的要注意頁面指定字符集並拼接前將**轉換)

26樓:免費模板網

把那個database刪除重新建個 試試 或者 在mysql裡面set names utf-8 試試

asp utf 8 asp使用utf 8編碼亂碼問題

asp使用utf 8編碼亂碼,是設定錯誤造成的,解決方法如下 1 首先在瀏覽器的開發者上面檢視了源 發現是utf 8。2 python執行之後,返回的還是一些看不懂的符號。3 其實是utf 8是沒錯的,只是需要給他明確一下,原來的請求是這樣的。4 然後需要在後面明確這一段 utf 8 5 之後再請求...

關於將excel匯出成utf 8編碼的csv檔案的問題

一點設計演示 設定方法 設定office語言環境 以office 2003為例 開始選單 microsoft office microsoft office工具 microsoft office 2003語言設定,將microsoft office應用程式預設方式的語言設為 中文 簡體 使用記事本開...

UTF 8和GB2312有什麼不同?在什麼情況下用

窩窩惡少 不同的編碼。各個國家和地區所制定的不同 ansi 編碼標準中,都只規定了各自語言所需的 字元 比如 漢字標準 gb2312 中沒有規定韓國語字元怎樣儲存。這些 ansi 編碼標準所規定的內容包含兩層含義 1.使用哪些字元。也就是說哪些漢字,字母和符號會被收入標準中。所包含 字元 的集合就叫...