在windows下创建繁体中文文件名读取出来为乱码的解决方案

      在自己一个Air桌面应用中需要用户在桌面自定义文件夹并写入相应的文件,文件名由用户自己任意取。当时自己就做了一个输入框让用户输入文件名,然后由程序将其写入系统。自己的系统是中文简体Windows系统,而自己的自行测试时一直用的是英文或中文简体来取文件夹或文件名。这样起名后在由Air重新读取这些文件夹或者文件的名字的时候,没有出现错误或什么乱码的情况。但是没想到的是别人的测试的时候,有人用中文繁体给文件夹或文件起名字,这下问题出来了,我的Air程序获取的繁体文件或文件夹名全为乱码。
      我大体认为是系统默认的中文简体和输入进来的文字的编码存在冲突,从而导致了重新的入以后,因为as解码不正确而导致了乱码。
      这个问题必须得以解决不然就丢人了。
      我先说说我写入或获取文件时文件名的获取方式,举例如下:
     
// 假定是获取桌面上的一个文件名
var tempFile:File  =  File.desktopDirectory.resolvePath( " mtFiles/测试.txt " );
// 通过url属性获取文件名
var fileURL:String  =  tempFile.url;
现在,如果这个"测试.txt"文件的名字"测试"是繁体的时候,我读出来的就是乱码.我看了下乱码,这乱码不是别人,而是熟人,它们是URI编码。
这下好办了,我只要解析这个URI编码就能得到正常的文件名了,不管文件名是否是中文简体的还是其他什么的。

那么怎么实现这个解码呢,其实真是很方便,只要别忘了用上就好了。
在顶级包中有URI解码组建:
decodeURIComponent()
这里的乱码用它便可以解决:
// 假定是获取桌面上的一个文件名
var tempFile:File  =  File.desktopDirectory.resolvePath( " mtFiles/测试.txt " );
// 通过url属性获取文件名
var fileURL:String  =  decodeURIComponent(tempFile.url);
这样处理后,得到的fileURL中的文件或文件夹名无论是繁体或简体都能正常显示。


转载于:https://www.cnblogs.com/vilyLei/articles/1566561.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值