为什么我的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;
}

...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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);就可以很好的支持中文了...我会试试你的方法的..

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧