解决php mysql乱码问题

本文的作用是为了全方位的避免因使用UTF-8编码而产生的乱码问题,不包含具体的乱码解决方案和编码转换的内容。对于UTF-8编码的深入了解,请参阅:《PHP匹配UTF-8中文字符的正则表达式》
1、编辑器:不要使用任何微软的编辑器,什么Frontpage,Web Designer,记事本,写字板什么的,能丢的全部丢开,因为这些编辑器会在你的UTF-8文档前面产生BOM,关于BOM的具体说明,可以在 这里 找到,当年我直接拿记事本转UTF-8覆盖原文件,造成大量代码损毁,至今记忆犹新。
2、MySQL数据库:注意建库,建表,建字段(注意有三处)的时候,都要选用utf8_general_ci的整理格式(Collation),在PHP使用mysql_connect()函数连接数据之后,需要加上一句:
mysql_query('set names "utf8"');
3、PHP:
使用mb库,不要使用iconv库。
使用preg而不要使用ereg来处理字符。
使用htmlentities()函数,html_entity_decode()函数的时候要带上第三个参数:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
$str = "<a href='test'>中文</a>";
echo htmlentities($str,ENT_COMPAT,"UTF-8"); //显示(源代码里面) &lt;a href='test'&gt;涓?

时间: 2024-09-26 17:51:41

解决php mysql乱码问题的相关文章

解决php mysql查询插入中文乱码问题

  一.中文问题其实就是经统一编码了否则就会乱码 1.数据库与php页面编码统一 2.数据库数据表字段与页面编码统一 如果做到上面两种就不存在中文乱码问题了,那么我们来看mysql中文乱码问题解决例子 1.我的mysql表如下 -- -- 表的结构 `useradmin` -- 代码如下   CREATE TABLE IF NOT EXISTS `userain` ( `id` int(4) NOT NULL AUTO_INCREMENT, `username` varchar(20) DEFA

10分钟学会理解和解决MySQL乱码问题

原文:10分钟学会理解和解决MySQL乱码问题 在阅读本文之前,强烈建议对字符集编码概念还比较模糊的同学 阅读下博主之前对相关概念的一篇科普:十分钟搞清字符集和字符编码 本博客已经迁移至: http://cenalulu.github.io/ 为了更好的体验,请通过此链接阅读: http://cenalulu.github.io/mysql/mysql-mojibake/ MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要了解从客户端发起请求,到MySQL存储数据,再到下次从表取回客户

快速解决PHP+MYSQL 出现乱码的解决方法

在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:  代码如下 复制代码 1 $mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass); 2 mysql_query("SET NAMES 'GBK'"); 数据库字符集为utf-8 连接语句用这个    代码如下 复制代码 1 mysql_que

jsp中文乱码 jsp mysql 乱码的解决方法_JSP编程

jsp中文乱码 jsp mysql 乱码要servlet里面支持中文的方法: 在dopost或者doget的第一句加上: request.setCharacterEncoding("GB2312"); response.setCharacterEncoding("GB2312"); jsp乱码问题在jsp里面就把 <%@ page contentType="text/html; charset=gb2312" language="

深入理解MySQL乱码问题及MySQL乱码解决

要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为.为了更好的解释这个过程,博主制作了两张流程图,分别对应存入和取出两个阶段. 存入MySQL经历的编码转换过程   上图中有3次编码/解码的过程(红色箭头).三个红色箭头分别对应:客户端编码,MySQL Server解码,Client编码向表编码的转换.其中Terminal可以是一个Bash,一个Web页面又或者是一个APP.本文中我们假定Bash是我们的T

java储存mysql乱码报错

问题描述 java储存mysql乱码报错 我现在是都文本来储存数据库, 做的是记录搜索内容的东西, 可是如果搜索内容本身中就有乱码, 要如何解决 比如这个图片,那个像L的东西, String line = new String(br.readLine().getBytes(), "ISO8859_1" ) 转utf-8 也没用 报这样的错 java.sql.SQLException: Incorrect string value: 'xF0x9Fx91x8CxE8xBF...' for

sql点滴40—mysql乱码问题总结

原文:sql点滴40-mysql乱码问题总结 本文将为大家讲解如何处理Java连接过程中的MySQL中文乱码问题.一般MySQL中文乱码问题都是与字符集有关,这里作者的经历也大致差不多. MySQL默认编码是latin1 1. mysql> show variables like 'character%'; 2. +--------------------------+--------------------------+ 3. | Variable_name | Value | 4. +---

MySQL乱码问题终极指南_Mysql

mysql的字符集设置众多,从客户端到连接到结果集,从服务器到库到表到列,都可以设置字符集,灵活很强大,但就是很容易出问题,如果不了解其机制,很容易就出现乱码问题. 为了让大家尽量在工作中少受或者不受乱码的困扰,这里我结合之前其它同学在论坛的发帖,并结合自己的理解和实践,详细分析总结了一下,以飨各位看官. 关于字符集和乱码的基础知识这里就不详细说明了(请自行搜索),但有一个问题需要特别强调一下:乱码是怎么产生的? 这个问题相信很多同学都是模棱两可,或者没有认真想过,反正理解就是"字符编码&quo

zip压缩解决文件名中文乱码问题

使用jdk自带的zip工具类Java.util.zip.ZipEntry,java.util.zip.ZipFile,java.util.zip.ZipInputStream,java.util.zip.ZipOutputStream 进行zip压缩时,没法解决文件名中文乱码问题 这里使用apache 旗下的commons-compress 库,官网是:http://commons.apache.org/proper/commons-compress/download_compress.cgi