setnamesutf8php,setName

本文目錄一覽:

php向mysql表中寫入中文,讀出來是亂碼,編碼set names utf8

set

names

只是告訴數據庫,取出和存入的字符編碼是什麼,與數據庫內部使用什麼編碼儲存沒有關係。

既然你設定了utf8

那麼請檢查

php文件編碼是否是utf8,不是的話使用

header(‘Content-Type:text/html;

charset=utf-8′);

再檢查html頁面編碼是否utf8,不是的話使用

meta

http-equiv=”content-type”

content=”text/html;charset=utf-8″

/

PHP MYSQL亂碼問題,使用SET NAMES utf8校正

先記下,免得以後想不起來又到處去找!

PHP操作數據庫的時候,數據庫中數據使用UTF8編碼,在讀出來的時候,顯示的全是???????問號亂碼,找了一些資料原來是在讀取之前進行一次編碼設置:

複製代碼

代碼如下:

create

table

tablename

(

id

int

not

null

auto_increment,

title

varchar(20)

not

null,

contnet

varchar(300)

defalut

null,

primary

key

(‘id’)

)begin=MyISAM

DEFAULT

CHARSET

=UTF8;

在插入數據之前執行:

複製代碼

代碼如下:

mysql_query(“SET

NAMES

utf8″);

然後

mysql_query(“insert

into

tablename

…..”)

讀出數據之前執行:

複製代碼

代碼如下:

mysql_query(“SET

NAMES

utf8″);

然後

mysql_query(“select

*

from

tablename”)

注意:此處讀出的編碼是把原來編碼的內容重新經過編碼後輸出的,比如輸出內容所在頁面是GBK編碼,那麼在讀出的時候在頁面顯示也為亂碼,所以在查詢之前執行

mysql_query(“SET

NAMES

gbk”),在頁面就可以正常顯示GBK編碼的文字內容

php mysql_query(“set names utf8”);是什麼意思

mysql中文數據出現亂碼

數據庫採用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_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);

mysql_query(“SET NAMES ‘GBK'”);

如何用php設置utf-8編碼?

在你的源文件找到meta http-equiv=”content-type” content=”text/html;charset=utf-8″charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。

要輸出UTF8格式時,加上以下語句:

header(」Content-Type: text/html; charset=UTF-8″)

php用UTF-8總結:

php文件本身必須是UTF-8編碼。不像Java會生成class文件,避免這個問題

php要輸出頭:header(」Content-Type: text/html; charset=UTF-8″)

meta標籤無所謂,有header所有瀏覽器就會按header來解析

所有外圍都得用UTF8,包括數據庫、×.js、×.css(CSS影響倒不大)

php本身不是Unicode的,所有substr之類的函數得改成mb_substr(需要裝mbstring擴展);或者用iconv轉碼(基本上的linux都裝了,沒裝的話download、tar、make、make install,很簡單的)

my.ini:

[MySQL(和PHP搭配之最佳組合)]

default-character-set=utf8

[MySQL(和PHP搭配之最佳組合)d]

default-character-set=utf8

default-storage-engine=MyISAM

在[MySQL(和PHP搭配之最佳組合)d]下加入:

default-collation=utf8_bin

init_connect='SET NAMES utf8'

在需要做數據庫操作的php程序前面加上

mb_internal_encoding('utf-8');

create table最後邊加上ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin

phpMyAdmin/config.inc.php

$cfg['DefaultCharset'] = 'utf-8';

$cfg['RecodingEngine'] = 'iconv';

phpAdmin導出數據時

把”二進制區域使用十六進制顯示”的勾去掉

特別鬱悶的:文件系統函數不支持UTF-8!

PHP插入mysql數據庫亂碼

亂碼主要以下幾個原因:

1。數據表中,表本身的編碼 和 字段編碼,均為UTF8。

2。在寫入數據等數據庫操作前,發送語句 ‘set names utf8’

3。PHP文件都是UTF8編碼,無簽名(無BOM)

4。頁面上使用header或meta保證輸出的頁面是UTF8編碼。meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /

鮮少老師

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

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

發表回復

登錄後才能評論