页面编码是UTF-8,页面的保存格式也是UTF-8
用echo("中国");是乱码
用tinybutstrong模板也是乱码.例如,HTML中:[var.China] PHP中: $China="中国";
请问如何解决? 感谢
12 个解决方案
#1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
#2
你看看显示的时候,浏览器自动选择的编码是什么
如果还是默认的gb2312,那就加上
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
如果自动选的是UTF-8的话,应该不会有乱码
如果还是默认的gb2312,那就加上
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
如果自动选的是UTF-8的话,应该不会有乱码
#3
#4
取消web server的默认编码 否则页面编码有时不会起作用
#5
PHP代码与HTML代码在同一个文件吗?
如果不在同一个文件必须保证两者保存时使用的编码相同,都存成utf-8。
如果不在同一个文件必须保证两者保存时使用的编码相同,都存成utf-8。
#6
直接从我空间抓过来的,打个广告~~
http://phnessu4.googlepages.com/phpcode1
动态网页的三个统一编码
动态网页的3个申明编码统一,否则回乱码。一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码:
1、文件编码:指的是页面文件(.html .php等)本身是以何种编码来保存的。记事本和Dreamweaver或EditPlus再打开页面时候会自动识别文件编码因而不太会出问题。
2、页面申明编码:在HTML代码HEAD里面,可以用
<meta http-equiv="Content-Type" content="text/html; charset="XXX" />
来告诉浏览器网页采用了什么编码,目前中文网站开发中XXX主要用的是GB2312和UTF-8两种编码。
3、数据库连接编码:指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。
应用:数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:
mysql_query("SET NAMES GBK"); 或 mysql_query("SET NAMES gb2312");
(这个语句相当于执行了
SET character_set_client=gb2312;
SET character_set_results=gb2312;
SET character_set_connection=gb2312;
不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES “gb2312″,这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。) 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:
mysql_query("SET NAMES UTF8");
http://phnessu4.googlepages.com/phpcode1
动态网页的三个统一编码
动态网页的3个申明编码统一,否则回乱码。一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码:
1、文件编码:指的是页面文件(.html .php等)本身是以何种编码来保存的。记事本和Dreamweaver或EditPlus再打开页面时候会自动识别文件编码因而不太会出问题。
2、页面申明编码:在HTML代码HEAD里面,可以用
<meta http-equiv="Content-Type" content="text/html; charset="XXX" />
来告诉浏览器网页采用了什么编码,目前中文网站开发中XXX主要用的是GB2312和UTF-8两种编码。
3、数据库连接编码:指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。
应用:数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:
mysql_query("SET NAMES GBK"); 或 mysql_query("SET NAMES gb2312");
(这个语句相当于执行了
SET character_set_client=gb2312;
SET character_set_results=gb2312;
SET character_set_connection=gb2312;
不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES “gb2312″,这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。) 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:
mysql_query("SET NAMES UTF8");
#7
用什么格式保存的!!!
#8
网页的文本编码也要修改的,不是单单加个<META http-equiv=Content-Type content="text/html; charset=UTF-8"> 就了事了。
如果文本编码是utf-8就算不加<META http-equiv=Content-Type content="text/html; charset=UTF-8"> 也一样正常识别。
如果文本编码是utf-8就算不加<META http-equiv=Content-Type content="text/html; charset=UTF-8"> 也一样正常识别。
#9
谢谢大家解答,但是问题还没解决.
php和html的文本格式都是UTF-8了
meta也是UTF-8
但是还是有乱码.
php和html的文本格式都是UTF-8了
meta也是UTF-8
但是还是有乱码.
#10
现在发现
echo "中国" 不会出现乱码
但是
$str="中国"
echo $str 就乱码了
请问如何解决? 谢谢!
(现在, php和html的文本格式都是UTF-8了,meta也是UTF-8 )
echo "中国" 不会出现乱码
但是
$str="中国"
echo $str 就乱码了
请问如何解决? 谢谢!
(现在, php和html的文本格式都是UTF-8了,meta也是UTF-8 )
#11
在网页最前面加header('Content-Type: text/html; charset=utf-8');
保存时保存为utf-8
保存时保存为utf-8
#12
谢谢了,学习中....
#1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
#2
你看看显示的时候,浏览器自动选择的编码是什么
如果还是默认的gb2312,那就加上
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
如果自动选的是UTF-8的话,应该不会有乱码
如果还是默认的gb2312,那就加上
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
如果自动选的是UTF-8的话,应该不会有乱码
#3
#4
取消web server的默认编码 否则页面编码有时不会起作用
#5
PHP代码与HTML代码在同一个文件吗?
如果不在同一个文件必须保证两者保存时使用的编码相同,都存成utf-8。
如果不在同一个文件必须保证两者保存时使用的编码相同,都存成utf-8。
#6
直接从我空间抓过来的,打个广告~~
http://phnessu4.googlepages.com/phpcode1
动态网页的三个统一编码
动态网页的3个申明编码统一,否则回乱码。一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码:
1、文件编码:指的是页面文件(.html .php等)本身是以何种编码来保存的。记事本和Dreamweaver或EditPlus再打开页面时候会自动识别文件编码因而不太会出问题。
2、页面申明编码:在HTML代码HEAD里面,可以用
<meta http-equiv="Content-Type" content="text/html; charset="XXX" />
来告诉浏览器网页采用了什么编码,目前中文网站开发中XXX主要用的是GB2312和UTF-8两种编码。
3、数据库连接编码:指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。
应用:数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:
mysql_query("SET NAMES GBK"); 或 mysql_query("SET NAMES gb2312");
(这个语句相当于执行了
SET character_set_client=gb2312;
SET character_set_results=gb2312;
SET character_set_connection=gb2312;
不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES “gb2312″,这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。) 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:
mysql_query("SET NAMES UTF8");
http://phnessu4.googlepages.com/phpcode1
动态网页的三个统一编码
动态网页的3个申明编码统一,否则回乱码。一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码:
1、文件编码:指的是页面文件(.html .php等)本身是以何种编码来保存的。记事本和Dreamweaver或EditPlus再打开页面时候会自动识别文件编码因而不太会出问题。
2、页面申明编码:在HTML代码HEAD里面,可以用
<meta http-equiv="Content-Type" content="text/html; charset="XXX" />
来告诉浏览器网页采用了什么编码,目前中文网站开发中XXX主要用的是GB2312和UTF-8两种编码。
3、数据库连接编码:指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。
应用:数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:
mysql_query("SET NAMES GBK"); 或 mysql_query("SET NAMES gb2312");
(这个语句相当于执行了
SET character_set_client=gb2312;
SET character_set_results=gb2312;
SET character_set_connection=gb2312;
不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES “gb2312″,这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。) 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:
mysql_query("SET NAMES UTF8");
#7
用什么格式保存的!!!
#8
网页的文本编码也要修改的,不是单单加个<META http-equiv=Content-Type content="text/html; charset=UTF-8"> 就了事了。
如果文本编码是utf-8就算不加<META http-equiv=Content-Type content="text/html; charset=UTF-8"> 也一样正常识别。
如果文本编码是utf-8就算不加<META http-equiv=Content-Type content="text/html; charset=UTF-8"> 也一样正常识别。
#9
谢谢大家解答,但是问题还没解决.
php和html的文本格式都是UTF-8了
meta也是UTF-8
但是还是有乱码.
php和html的文本格式都是UTF-8了
meta也是UTF-8
但是还是有乱码.
#10
现在发现
echo "中国" 不会出现乱码
但是
$str="中国"
echo $str 就乱码了
请问如何解决? 谢谢!
(现在, php和html的文本格式都是UTF-8了,meta也是UTF-8 )
echo "中国" 不会出现乱码
但是
$str="中国"
echo $str 就乱码了
请问如何解决? 谢谢!
(现在, php和html的文本格式都是UTF-8了,meta也是UTF-8 )
#11
在网页最前面加header('Content-Type: text/html; charset=utf-8');
保存时保存为utf-8
保存时保存为utf-8
#12
谢谢了,学习中....