作者:乔山办公网日期:
返回目录:excel表格制作
java不同编码之zhidao间进行转换,都需要使用unicode作为中转。
以utf-8转gbk为例,示专例代码属如下:
String t = "这是一个字符串aaa111";
String gbk= new String(t.getBytes( "GBK"));
System.out.println(gbk);
String unicode = new String(gbk.getBytes(),"GBK");
System.out.println(unicode);
String utf8= new String(unicode.getBytes("UTF-8"));
System.out.println(utf8);
给个转码的方法给你吧! 你可以自己修改$outEncoding的参数,下面的方法默认是转换为gb2312的字符集了,你调用方法就可以将你的字符串转换字符
//中文字符编7a64e59b9ee7ad94365码转换
public function safeEncoding($string,$outEncoding ='GB2312')
{
$encoding = "UTF-8";
for($i=0;$i<strlen($string);$i++)
{
if(ord($string{$i})<128)
continue;
if((ord($string{$i})&224)==224)
{
//第一个字节判断通过
$char = $string{++$i};
if((ord($char)&128)==128)
{
//第二个字节判断通过
$char = $string{++$i};
if((ord($char)&128)==128)
{
$encoding = "UTF-8";
break;
}
}
}
if((ord($string{$i})&192)==192)
{
//第一个字节判断通过
$char = $string{++$i};
if((ord($char)&128)==128)
{
// 第二个字节判断通过
$encoding = "GB2312";
break;
}
}
}
if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding,$outEncoding,$string);
}
最简单的抄:
$str = iconv("gbk", "utf-8//ignore", $str);
或者:
$str = mb_convert_encoding($str, "utf-8", "gbk");
稍微解释一下 //ignore 的意思是转换不了袭的字符就忽百略。建议把这个写上度。否则遇到转换不了的字符会报错。知gbk替换成你需要道转换的编码就可以了。
你复制到txt中,再复制回来试试吧