首页 > 编程知识 正文

setnamesutf8php,setName

时间:2023-12-29 20:32:07 阅读:331244 作者:RSKZ

本文目录一览:

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" /

鲜少老师

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。