LAMP乱码问题总结篇

 

偶尔也会遇到乱码,时而也会有人问到乱码问题,出于温习和除草的目的,整理一下。刚开始碰到乱码问题可能会不知所措,但在了解可能出现乱码的几个点之后,便可以轻松地避免或者解决。

这里说的乱码问题总体分为两类:

一、页面出现乱码;

二、从数据库取值或插入时出现乱码;

避免出现乱码的最好的办法,就是在所有指定编码的地方指定相同的编码。推荐釆用utf-8进行统一编码。下面分别描述及解释下上面三种出现乱码的情况。

第一种情况,不涉及数据库操作,或者我们假设数据库的操作不会造成乱码(数据库造成乱码的情况在下面讨论)。那么只需要检查脚本文件的编码和页面编码是否一致即可。文件的编码一般的文本编辑器都可以更改,如Eclipse,notepad2,Netbeans等,而网页页面的编码则通过meta标签来指定。
< meta content=” text/html; charset=UTF-8 ″ http-equiv= ”Content-Type” />

第二种情况,则需要数据库编码、数据库表中该字段的编码及页面编码保持一致。数据库编码及字段编码可以在创建时设置collation来指定。页面编码上面已经提到。

有的时候,我们在进行数据库操作时,插入的是什么字符,读取出来的时候还是那些字符,好像没有什么问题。但是当我们对数据库进行管理的时候,在第三方工具里显示的却是乱码。这就是由于连接数据库时的编码和数据库的编码或者页面编码不一致造成的。我们可以在数据库连接建立后通过sql 语句来指定编码:SET NAMES UTF8,注意没有连字符。

总结:这里推荐的方式是将所有的编码指定为utf-8。
脚本文件编码:utf-8
网页页面编码:
< meta content=” text/html; charset=UTF-8 ″ http-equiv= ”Content-Type” />
数据库及字段编码:utf8_general_ci
数据库连接编码:SET NAMES UTF8;

题外话:为何推荐采用UTF8编码?唯一记得的就是它是国际通用的语言编码,兼容性比较好,故用之。下面摘取一段专业的说明:

使用UTF-8编码唯一的好处是,国外的用户如果使用Windows XP英文版,浏览UTF-8编码的任何网页,无论是中文、还是日文、韩文、阿拉伯文,都可以正常显示,UTF-8是世界通用的语言编码,UTF-8的推广要归功于Google的应用,以及Blog开发者。而如果用Windows XP英文版的IE6.0浏览gb2312语言编码的网页,则会提示是否安装语言包。因此,可能会失去很多的国外浏览者。

使用gb2312编码的好处是,因为程序产生的网页文本使用ANSI编码格式,会比UTF-8文本编码节省一些体积,访问速度会稍微快一点点,体积比请见我这里做的精确的实验。

我们来看看日本语的Blog,使用Japanese (EUC)编码、UTF-8编码都占多数;韩国语的Blog,UTF-8编码占多数,Korean (EUC)、Korean也同样占较大部分。

由此可以得出,使用UTF-8语言编码,还是使用本国的语言编码,与是否爱国没有多大关系,或者说,压根儿就没有关系,在中国,没有一个人是不爱国的。我一直在UTF-8和gb2312之间徘徊,要不要使用UTF-8编码?千万次地问。

时间: 2024-08-01 09:42:40

LAMP乱码问题总结篇的相关文章

十五天精通WCF——第八天 对“绑定”的最后一点理解

原文:十五天精通WCF--第八天 对"绑定"的最后一点理解 转眼已经中断10几天没有写博客了,也不是工作太忙,正好碰到了端午节,然后最近看天津台的爱情保卫战入迷了...太好看了,一直都是回味无穷...而且 涂磊老师话说的真是tmd的经典,然后就这样耽搁了,好了,话不多说,这篇我们看看binding中最后一点需要知道的东西.   一:信道栈 我在之前的文章中多次提到信道栈,不知道大家对它的概念是否有了解,其实想想也还是蛮简单的,既然是栈,那么这个栈肯定就不止一个元素了,对吧,第二个 的话

VNX for File字符显示常见问题和解决方案

故障现象: 文章转载自EMC中文支持论坛. VNX for File默认的字符编码为ASCII,常采用Unicode语言字符标准以统一方式来存储.搜索和互换任何语言的文本.在系统初始安装和平台迁移后,由于新安装的VNX上没有启动Unicode字符编码,常导致在某台计算机上显示正常的文件名在另一台计算机上变成乱码,这篇文章将介绍这类问题的解决方案. 解决方案: VNX for File采用Unicode consortium指定的语言字符标准,Unicode字符涵盖世界上主要的书面语言,其中包括:

phpmyadmin: linux学习篇-使用apt-get方式安装LAMP包括phpmyadmin

linux学习篇-使用apt-get方式安装LAMP包括phpmyadmin    对于想学linux的朋友来说,在虚拟机上装上linux系统是不二选择.至于哪种linux好用,萝卜白菜,各有所爱.我喜欢ubuntu,虚拟机上安装的是最新的ubuntu11.10    搭建LAMP环境有两种方式可以选择,一是用apt-get方式安装,这个适合初学者.有点是安装简单,不需要做什么配置就可以使用.缺点是自主性太差,安装目录啊啥的都是默认的,不方便自己管理,也不敢轻易的移动位置.二是用编译安装的方法.

phpmyadmin显示utf8_general_ci中文乱码的问题终级篇_php技巧

自己写PHP也有一年多了,然后编码问题却老是没有得到好的解决,自己的情况是这样的, 网页显示完全正常,在phpmyadmin数据库显示中文乱码,不管是简体还是繁体,只要是中文都是如下显示形式:梧州æ--游 然而自己编写的网页中却显示完全正常,不管是繁体,还是简体,都不会乱码情况. 当然我的网页是保存为utf-8格式的,再加上我读库操作时加上了mysql_query("set names 'utf-8'");的语句,所以在网页中看到的是完全正常,当然只有在phpmyadmin

Zabbix安装图文教程(需要LAMP或者LNMP运行环境)_zabbix

说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需要有LAMP或者LNMP运行环境 准备篇: 一.Web环境:Nginx+MySQL+PHP CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14 二.zabbix软件包下载 zabbix-2.2.6 http://jaist.dl.sourceforge.ne

数据库中文记录乱码

概述 在这里我想给大家分享数据库中文乱码相关问题,前几天朋友出现过这个问题.能力有限,不对的地方还请大家多多指教,反馈给我,让我把这一篇博文修改地越来越好,kensoon918@162.com only for feedback MySql 遇到过Mysql 出现过中文乱码的问题,把数据库的字符集改成UTF-8 就能解决问题了.我是这样解决的,如有更好的方法feedback me. SqlServer 在SqlServer 也同样出现过,如果记录要存的是中文的话,尽量用带n开头的数据格式,例如:

用XMLHTTP Post/Get HTML页面时的中文乱码问题

xml|问题|页面|中文|中文乱码 以前我曾经贴过一篇用XMLHTTP Post Form 的帖子,那里的代码中我Post E文的Value毫无问题,但是后来发现Post含有中文的表单时会出现乱码,原因当然是UTF-8 和GB2312 之间的转换问题了!TNND,打倒GB2312!大家都用UTF8多好. 用XMLHTTP Post Form时的表单乱码有两方面的原因--Post表单数据时中文乱码:服务器Response被XMLHTTP不正确编码引起的乱码.换句话说,本文主要解决两个问题--怎样正

SpringMVC源码总结(四)由StringHttpMessageConverter引出的客户端服务器端之间的乱码过程分析

继续上一篇文章遗留的乱码问题,引出从客户端数据到服务器端的乱码和服务器端数据到客户端的乱码.  先说明下配置:  web.xml,还是最简单的配置  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!DOCTYPE web-app PUBLIC  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  "http://java.sun.com/dtd/web-app_2

MySql 中文乱码排查解决方案

阅读目录 1.避免创建数据库及表出现中文乱码和查看编码方法 2.避免导入数据有中文乱码的问题 3.解决网页中乱码的问题 MySQL会出现中文乱码的原因不外乎下列几点: server本身设定问题,例如还停留在latin1 table的语系设定问题(包含character与collation) 客户端程式(例如php)的连线语系设定问题 回到顶部 1.避免创建数据库及表出现中文乱码和查看编码方法 a.创建数据库的时候 CREATE DATABASE `test` CHARACTER SET 'utf