偶尔也会遇到乱码,时而也会有人问到乱码问题,出于温习和除草的目的,整理一下。刚开始碰到乱码问题可能会不知所措,但在了解可能出现乱码的几个点之后,便可以轻松地避免或者解决。
这里说的乱码问题总体分为两类:
一、页面出现乱码;
二、从数据库取值或插入时出现乱码;
避免出现乱码的最好的办法,就是在所有指定编码的地方指定相同的编码。推荐釆用utf-8进行统一编码。下面分别描述及解释下上面三种出现乱码的情况。
第一种情况,不涉及数据库操作,或者我们假设数据库的操作不会造成乱码(数据库造成乱码的情况在下面讨论)。那么只需要检查脚本文件的编码和页面编码是否一致即可。文件的编码一般的文本编辑器都可以更改,如Eclipse,notepad2,Netbeans等,而网页页面的编码则通过meta标签来指定。
第二种情况,则需要数据库编码、数据库表中该字段的编码及页面编码保持一致。数据库编码及字段编码可以在创建时设置collation来指定。页面编码上面已经提到。
有的时候,我们在进行数据库操作时,插入的是什么字符,读取出来的时候还是那些字符,好像没有什么问题。但是当我们对数据库进行管理的时候,在第三方工具里显示的却是乱码。这就是由于连接数据库时的编码和数据库的编码或者页面编码不一致造成的。我们可以在数据库连接建立后通过sql 语句来指定编码:SET NAMES UTF8,注意没有连字符。
总结:这里推荐的方式是将所有的编码指定为utf-8。
脚本文件编码:utf-8
网页页面编码:
数据库及字段编码: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编码?千万次地问。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)