对转移从GB2312UTF-8编码方法的总结(从前台程序,数据库)
主要有五个方面:
A. HTML页面UTF-8编码问题。
two.php页UTF-8编码
three.mysql数据库使用UTF-8编码
four.js UTF-8编码的相关问题
five.flash UTF-8编码的相关问题
a.html页UTF-8编码问题
1。在以后的汉字之间,显示的标题可能是随机代码!
2.html文件编码问题:
在菜单编辑器中点击:文件->另存为,你可以看到当前文件的编码,确保文件编码:UTF-8,如果ANSI,需要改变:UTF-8编码。
3.html文件头的BOM问题:
当文件被其它编码转换为UTF-8编码,有时一个BOM标签添加到文件的开头。BOM标签浏览器可能会出现乱码,显示中国。
删除此BOM标签的方法是:
1。可以用Dreamweaver打开文件,并重新保存,也就是说,你可以删除BOM标签!
2。可以用editplus打开文件,并在第一个菜单选项->文件->UTF-8标志
4.web服务器UTF-8编码问题:
如果您执行以上步骤或存在中文代码问题,请检查Web服务器的编码问题。
如果你使用的是Apache设置字符集,请在配置文件以UTF-8编码:这是方法,特定的格式,请参阅Apache的配置文件。
如果您使用的是nginx的,请在字符集nginx.conf:UTF-8,专门找字符集GB2312或类似的东西:字符的UTF-8。
two.php页UTF-8编码
1。在代码开始时,添加一行:
标题(内容类型:文本/ HTML;字符集= UTF-8);
2.php文件编码问题
在菜单编辑器中点击:文件->另存为,你可以看到当前文件的编码,确保文件编码:UTF-8,如果ANSI,需要改变:UTF-8编码。
3.php文件头的BOM问题:
PHP文件不能有BOM标记,否则会出现会话不能使用的情况,并且有类似的提示:
警告:session_start(){函数。会议开始}:无法发送会话缓存限制器头已经发
这是因为,session_start执行()时,整个页面无法输出,但有在前面的PHP页面BOM标签,PHP将BOM标签作为输出,所以它是错误的。
因此PHP页面必须删除BOM标签。
删除此BOM标签的方法是:
1。可以用Dreamweaver打开文件,并重新保存,也就是说,你可以删除BOM标签!
2。可以用editplus打开文件,并在第一个菜单选项->文件->UTF-8标志
当4.php保存在表格文件,UTF-8编码问题:
PHP以附件形式保存的文件,并且文件名必须是GB2312编码,否则,如果文件名有中文,它会显示乱码。
如果你的PHP本身是UTF-8编码格式的文件,你要转换的文件名变量从UTF-8到GB2312:
iconv(UTF-8
5。当文章的标题被截断时,随机代码还是问号:
一般很长时间的标题,会显示的标题的一部分,将被截断的标题,因为一个UTF-8编码格式的汉字会占据3个字符的宽度,当拦截的称号,有时只截取1个字符或2个汉字字符宽度,无法捕捉一个完整的。会有乱码或在问号的情况下,使用下面的函数截取标题,不会有问题:
功能get_brief_str($str,max_length美元)
{
回声strlen(str)。
;
如果(strlen(str)> max_length美元)
{
check_num = 0美元;
为($我= 0;美元美元美元我<< max_length;i++)
{
如果(ORD($str {我})> 128)
check_num美元+ +;
}
如果($ check_num % 3 = = 0)
$str = substr($str,0,max_length美元)。……;
如果($ check_num % 3 = = 1)
$str = substr($str,0,max_length美元+ 2)。...;
如果($ check_num % 3 = = 2)
$str = substr($str,0,max_length美元+ 1)。……;
}
返回$ STR;
}
three.mysql数据库使用UTF-8编码
1。创建数据库和数据表与phpMyAdmin
当你创建一个数据库,请设置安排:utf8_general_ci或执行语句:
创建数据库` dbname `默认字符集utf8整理utf8_general_ci;
当数据表被创建:如果这个字段是中文的,需要设置安排:utf8_general_ci,
如果字段以英文或数字存储,则缺省可用。
相应的sql语句,如:
创建表(测试)
int不是空的,
`名字` varchar(10)utf8字符集的整理utf8_general_ci不空,
主键(id)
)= MyISAM引擎;
2。用php读写数据库
连接到数据库之后:
连接= mysql_connect美元(美元host_name,host_user美元,美元host_pass);
加入这两行:
mysql_query(字符集set'utf8); / /读库
mysql_query(设置names'utf8); / /写库
你可以正常地读写MySQL数据库。
four.js UTF-8编码的相关问题
1.js饼干读中文的随机码
当PHP编写cookie时,需要对汉字进行编码,否则cookie中的汉字将是cookie中的乱码。
但是PHP本身没有转义功能,我们编写了一个新的转义函数:
函数转义($ STR)
{
preg_match_all( / { X80 - xff }。| { X01 - x7f } + /
$ = $ $ { 0 };
foreach($ AR $ K = > $ V)
{
如果(ORD($ V { 0 })<128)
{ } = K Ar美元美元rawurlencode($ V);
其他的
{ } = K Ar美元美元%。bin2hex(iconv(UTF-8
}
返回连接()
}
当JS读取cookie,它与unescape解码,然后解决中文乱码问题饼干。
2。外部js文件UTF-8编码问题
当一个HTML页或PHP页面包含一个外部js文件,如果网页或PHP页面是UTF-8编码格式,外部js文件也将变成一个UTF-8文件,否则会出现,不包含没有成功,没有反应,当函数被调用的。
在菜单编辑器中点击:文件->另存为,你可以看到当前文件的编码,确保文件编码:UTF-8,如果ANSI,需要改变:UTF-8编码。
five.flash UTF-8编码的相关问题
Flash的所有字符串内,默认是由UTF-8
1.flash读普通文件(TXT、HTML)
要保存的文本文件的编码为UTF-8
在菜单编辑器中点击:文件->另存为,你可以看到当前文件的编码,确保文件编码:UTF-8,如果ANSI,需要改变:UTF-8编码。
2.flash读取XML文件
保存XML文件的编码为UTF-8
在菜单编辑器中点击:文件->另存为,你可以看到当前文件的编码,确保文件编码:UTF-8,如果ANSI,需要改变:UTF-8编码。
先写线XML:
3.flash读取PHP返回数据
如果PHP代码本身是UTF-8,直接呼应的是好的。
如果PHP代码本身是GB2312,PHP可以被转移到一个文件中使用UTF-8编码格式,并可直接回波
如果PHP代码本身是GB2312,不允许改变文件的编码格式,下面的语句是用来将字符串转换为UTF-8编码格式
new_str美元= iconv(GB2312
然后回声就可以了
4.flash读取数据库(MySQL)的数据
Flash通过PHP读取数据库中的数据。PHP本身的编码并不重要。关键是,如果数据库的编码是GB2312,它需要将字符串编码格式UTF-8使用以下语句。
new_str美元= iconv(GB2312
5.flash写入数据通过PHP
总之,通过Flash的字符串是UTF-8格式,需要转换成相应的编码格式,然后操作(写入文件,写入数据库,直接显示,等)或用iconv函数变换。
6.flash采用本地编码(不推荐在理论上)
如果你想让闪光灯不使用UTF-8编码,它使用本地编码。在中国大陆,当地的编码是GB2312和GBK
在AS程序中,您可以添加以下代码:
system.usecodepage =真;
在Flash中的所有字符都使用GB2312编码,和所有的数据导入到Flash或Flash应相应编码。
由于使用本地编码,会导致用户在传统的中文领域产生混沌码,因此不推荐使用。