常用的字符编码有:ASCII(8bit)、ISO-8859-1(8bit)、GB2312(8-16)、GBK(8-16)、Big5(16)、Unicode(UTF-8(8-48)、UTF-16(16-32)),另外还有URL
编码。主要总结的是在各个编程语言中编码的转换函数。
1.
C#
a)
转换
string result =
Encoding.GetEncoding("gb2312").GetString(Encoding.Default.GetBytes(“xxx”))
byte[] bs =
Encoding.GetEncoding("gb2312").GetBytes(“XXX”);
b)
Urlencode和Urldecode
命名空间:System.Web
string result = HttpUtility.UrlEncode("j_username",
Encoding.GetEncoding("gb2312"));
String DecodedString = Server.UrlDecode(EncodedString,
Encoding.GetEncoding("gb2312"));
2.
Java
a)
转换
//
iso8859-1为旧的编码,gb2312为新的编码
String result = new String(str.getBytes("iso8859-1"),
"gb2312");
b)
Urlencode和Urldecode
String query = URLEncoder.encode(
"pg=q&kl=XX&stype=stext&q=+"Java+I/O"&search.x=38&search.y=3"
,"UTF-8");
String result = URLDecoder
.decode(
"pg=q&kl=XX&stype=stext&q=+"Java+I/O"&search.x=38&search.y=3","UTF-8");
3.
PHP
1)
PHP文档的编码声明
header("content-Type: text/html; charset=Utf-8");
2)
mb_convert_encoding( $str, $encoding1,$encoding2 )
$str,要转换编码的字符串
$encoding1,目标编码,如utf-8,gbk,大小写均可
$encoding2,原编码,如utf-8,gbk,大小写均可
a)
实例1
$str='编码';
echo
mb_convert_encoding($str, "UTF-8"); //编码转换为utf-8
b)
实例2
$str='编码';
echo
mb_convert_encoding($str, "UTF-8", "GBK"); //已知原编码为GBK,转换为utf-8
c)
实例3
$str='编码';
echo
mb_convert_encoding($str, "UTF-8", "auto"); //未知原编码,通过auto自动检测后,转换编码为utf-8
2)
iconv — 字符串按要求的字符编码来转换
iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。
如果是windows2000+php,你可以修改php.ini文件,将extension=php_iconv.dll前的";"去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(如果你的dll指向的是这个目录)
a)
说明
string iconv ( string $in_charset , string
$out_charset , string $str )
将字符串 str
从 in_charset
转换编码到 out_charset。
b)
参数
in_charset 输入的字符集。
out_charset 输出的字符集。
如果你在 out_charset
后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。
如果你添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。
否则,str
从第一个无效字符开始截断并导致一个 E_NOTICE。
c)
$content = iconv("GBK",
"UTF-8", $content);
3)
Urlencode和Urldecode
$EncodeStr=urlencode($ChineseName);
$DecodeStr=urldecode($ChineseName);