如果一个网站需要国际化,需要变换编码为UTF-8与GB2312。有许多问题需要注意。如果没有转换,就会出现很多编码问题。

PHP网页UTF-8编码问题

1。在开始的代码,添加一行:header(内容类型:文本/ HTML;字符集= UTF-8);

2.php文件编码编辑菜单:点击文件->另存为,你可以看到当前文件的编码,确保文件编码:UTF-8,如果ANSI,需要改变:UTF-8编码。

BOM的问题:PHP 3.php头文件必须没有BOM标签,否则,将有一个会议不能使用,和类似的提示:警告:session_start({功能。会议开始}):无法发送会话缓存限制器头这是因为派已经在session_start实施(时间),而不是整个页面的输出。但是,当PHP页面BOM标签,PHP BOM标签作为输出,所以它是错误的!因此PHP页面必须删除BOM标签。

删除此BOM标签的方法是:

1。可以用Dreamweaver打开文件,并重新保存,也就是说,你可以删除BOM标签!

2。可以用editplus打开文件,并在第一个菜单选项->文件->UTF-8标志

当3.php保存附件文件,UTF-8编码的问题:PHP文件保存为一个附件的文件名必须是GB2312编码,否则,如果有的话,中文文件名会乱码:如果你的PHP是UTF-8编码格式的文件,从变量到GB2312 UTF-8文件名:iconv(UTF-8

4。当文章的标题被截断时,随机代码还是问号:

一般很长时间的标题,会显示的标题的一部分,将被截断的标题,因为一个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;
}


使用UTF-8编码在MySQL数据库的问题

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程序设计有所帮助。