FLASH读取JAVA生成的XML文件,不同平台乱码

 

  又见乱码~~

几日前,在实现分页时就出现了乱码,最后改了TOMCAT配置参数解决了

没过两天,接手他人的工作,在FLASH中读取XML文件,在前台显示又是乱码,算是和乱码较上劲了!第一次处理FLASH,费了两天时间,今日终于解决了!!

 

一开始在网上搜了一翻,了解了一些FLASH产生乱码的原因

解决方法基本上就是两种:

1、  设置XML文件UTF-8格式

2、  FLASH中设置System.useCodePage=true;

普遍认为将XML,改成UTF-8的比较好

 

第一次乱码解决:

于是开始了修改:

首先试了一下第一种,在用流写文件的时候生成的XML头结点,

"<?xml version=/"1.0/" encoding=/"UTF-8/"?>"

在使用流的时候也用UTF-8

new OutputStreamWriter(out, "UTF-8");

把工程发布重新运行,结果一看还是乱码,

*_*,为什么呢?于是查看了一下FLASH的代码,结果发现了有System.useCodePage=true;这一句,想了一下,这是两种解决方法,会不会同时使用产生了冲突呢??

将其设为false,重新发布FLASH,在重新运行工程,

^_^ OK!乱码没有了~~,高兴中

 

第二次乱码解决:

可是好景不长,把程序放在了服务器上开始做进一步的测试,结果乱码又出现了,百思不得其解~~,为什么在本地就没有乱码,而在服务器上就有乱码呢??

于是查看了一下本地系统的编码集:“GBK”,而服务器的系统编码集:“GB2312

难道系统的编码集不同就会产生乱码,但是并没有System.useCodePage = true呀??

于是又上网搜,找到了一个介绍即使在xml文件中指定了是“UTF-8”但是生成的文件不一定就是“UTF-8”编码的,有可能与当前生成XML的语言的源文件相同,此时一定要设置成“gb2312,就想会不会也是遇到了这个问题??

 

于是又在用写流文件的时候生成的XML头结点改成,

"<?xml version=/"1.0/" encoding=/"GB2312/"?>"

在使用流的时候也用GB2312

new OutputStreamWriter(out, " GB2312");

FLASH中添加上

System.useCodePage=true;

重新发布~~

在本地运行:OK

在服务器上运行:OK

 

*^÷^*

 

总结:(参照查找的资料)

1、  若是XML文件是用某种语言生成的,而不是手动建立的,那么XML文件中若含有中文字符,即使声明编码为UTF-8,但是最后生成的文件也可能无法被正确读取,因为它生成的编码方式是你当前所用语言的源文件编码格式。

此时,要想FLASH正确读取XML不出现乱码,就必须设置encodingGB2312

然后再设置FLASHSystem.useCodePage = true;(但是设置了以后可能在非中文的操作系统中可能又会出现乱码)

2、  若是手动生成的XML文件中设置了“UTF-8”,且保存时以“UTF-8”的格式保存,那么在FLASH中就设置System.useCodePage = false或者根本就去掉,因为默认也是false;

 

疑问:

虽然问题暂时能够解决了,但是仍然不明白:

 

查看了一下本地JAVA源文件的编码集,结果发现也是“UTF-8”的,此处十分不解,如果说第一次乱码在本地解决了,是由于生成的XML文件与本地的JAVA源文件全是“UTF-8”编码的,那么为什么到服务器上就又产生乱码了?是由于服务器的系统编码集与本地不同?而且用JAVA的输出流,指定编码方式,

new OutputStreamWriter(out, "UTF-8");

起到了什么作用?如果说起到了作用,将生成的XML文件按“UTF-8”的方式存储,那么到服务器为什么不起作用?还是我漏掉了其他的原因?

 

此外,第一次接触FLASH,特别是读取XML文件,如果有不对的地方,望牛人指出

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值