java和php字符编码问题,字符编码转换(C#、Java、PHP)

常用的字符编码有: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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值