PHP乱码问题,UTF-8(乱码) (share)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一.PHP页面转UTF-8编码问题 

1.在代码开始出加入一行: 
header("Content-Type: text/html;charset=utf-8");

2.PHP文件编码问题

点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 
如果是ANSI,需要将编码改成:UTF-8。 

3.JS读Cookie的中文乱码问题 

PHP写cookie的时候需要将中文字符进行escape编码, 否则JS读到cookie中的中文字符将是乱码。 但php本身没有escape函数,我们新写一个escape函数: 

复制代码
function escape($str) { 
    preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
    $ar = $r[0]; 
    foreach($ar as $k=>$v) { 
        if(ord($v[0]) < 128) 
        $ar[$k] = rawurlencode($v); 
    else 
        $ar[$k] = "%u".bin2hex(iconv("UTF-8","UCS-2",$v)); 
    } 
    return join("",$ar); 
}
复制代码

JS读cookie的时候,用unescape解码,然后就解决cookie中有中文乱码的问题了。

 

二.MYSQL数据库使用UTF-8编码的问题

1.用phpmyadmin创建数据库和数据表 

创建数据库的时候,请将“整理”设置为:“utf8_general_ci” ,或执行语句:

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,如果该字段是存放英文或数字的话,默认就可以了。

相应的SQL语句,例如:

CREATE TABLE `test` ( 
`id` INT NOT NULL , 
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM ;

 

2.用PHP读写数据库

在连接数据库之后,加入两行:

mysql_query("set character set 'utf8'");//读库

mysql_query("set names 'utf8'");//写库

 

就可以正常的读写MYSQL数据库了。

 

节选自:http://www.cnblogs.com/rickyNote/archive/2012/04/09/2438704.html

本文转自挨踢前端博客园博客,原文链接http://www.cnblogs.com/duanhuajian/p/3635656.html如需转载请自行联系原作者


@挨踢前端

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
JSON PHP 数据格式
php json_encode JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded
php json_encode JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded
379 0
|
JSON JavaScript PHP
引入colinodell / json5:适用于PHP的UTF-8兼容JSON5解析器
引入colinodell / json5:适用于PHP的UTF-8兼容JSON5解析器
200 0
PHP:mb_substr中文字符串截取避免乱码
PHP:mb_substr中文字符串截取避免乱码
PHP:mb_substr中文字符串截取避免乱码
PHP:mb_substr中文字符串截取避免乱码
127 0
|
PHP
PHP md5函数 的16位字符乱码问题解决
乱码 PHP的md5函数用于对字符串参数进行md5运算,该函数有两个参数: md5 ( string $str [, bool $raw_output = FALSE ] ) : string 第一个参数是输入字符串;第二个参数默认为FALSE,设置为TRUE时可以输出16位的md5值。
1638 0
|
移动开发 PHP
php发邮件foxmail标题显示乱码问题解决方案
之前在大神那里找了一个SMTP发送邮件的源码,应用之后是可以发送邮件了,然后web查看邮件也正常,但是foxmail客户端一直显示标题乱码,正文是正常的,几经搜索之后,终于发现原来邮件是base64编码的,所有需要将标题经过编码之后才发送,测试之后,果然正常了。
2279 0