为什么我的decode取出的值是乱码.高手帮忙看看

pelias 2010-10-12 10:23:34
刚学flex 用air 做了个 类似记事本的东西...在写入数据库的时候有时候需要存 htmlText 代码 所有write的时候都用base64 encode一下.取出来后 decode 刚才测试中文发现存入是OK的...可是取出来就变成乱码了.这是为什么呢?...请指教一下
encode 和 decode 代码如下:

/**
* base64 解码
*/
public static function decodeString(str:String):String{
var returnStr:String = StringUtil.trim(str);
if(returnStr != null && returnStr.length > 0){
var base64:Base64Decoder = new Base64Decoder();
base64.decode(returnStr);
returnStr = base64.toByteArray().toString();
}
return returnStr;
}


/**
* base64 加密
*/
public static function encodeString(str:String):String{
var returnStr:String = str;
if(str != null && StringUtil.trim(str).length > 0){
var base64:Base64Encoder = new Base64Encoder();
base64.encode(str);
returnStr = base64.toString();
}
return returnStr;
}

...全文
100 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
leemiki 2010-10-13
returnStr = base64.toByteArray().toString();

字节数组不是这么读取

loader:Loader = new Loader();
loader.loadBytes(base64.toByteArray);
loader.assEventListener(Event.COMPLETE,getStr);

private function getStr(event:Event):void{
Alert.show(event.target.loader.content);
}
回复
passself 2010-10-13
已经是字符转换了,还出现这种情况,奇怪
回复
pelias 2010-10-13
[Quote=引用 2 楼 leemiki 的回复:]

returnStr = base64.toByteArray().toString();

字节数组不是这么读取

loader:Loader = new Loader();
loader.loadBytes(base64.toByteArray);
loader.assEventListener(Event.COMPLETE,getStr);

private function……
[/Quote]
呵呵...谢谢了...我找到问题了..其实在base64 encode的时候使用 base64.encodeUTFBytes(str);就可以很好的支持中文了...我会试试你的方法的..
回复
相关推荐
发帖
Flex
创建于2007-12-13

4328

社区成员

多媒体/设计 Flex
申请成为版主
帖子事件
创建了帖子
2010-10-12 10:23
社区公告
暂无公告