对转移从GB2312UTF-8编码方法的总结(从前台程序,数据库)

对转移从GB2312UTF-8编码方法的总结(从前台程序,数据库)
如果一个网站需要国际化,需要变换编码为UTF-8与GB2312。有许多问题需要注意。如果没有转换,就会出现很多编码问题。

主要有五个方面:

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应相应编码。

由于使用本地编码,会导致用户在传统的中文领域产生混沌码,因此不推荐使用。

tag:编码方法数据库前台程序电脑软件

相关内容