我使用.net 3.5在C#中有一个应用程序。使用此应用程序,我保存文件并使用vjlib
库将其压缩,并在打开文件时将其解压缩。但是当我尝试将文件名作为日语保存在英文操作系统中时,文件在打开它的应用程序时却无法理解日文字符。它是由于一些Windows语言包等。
答案 0 :(得分:1)
此问题很可能是由创建.zip文件的应用程序引起的。文件名在文件内以8位字符编码。 ZIP规范说该名称应该在代码页437或utf-8中编码。代码页437是原始的IBM PC字符集,这是一种不支持任何日文字符的编码。应用程序使用自己的8位编码并不罕见,而不是默认系统代码页无法确定。
您使用的库是JScript的.NET运行时支持库。不确定它是否支持指定不同的编码,因为它已经被弃用了很长时间,所以很难找到它的文档。考虑一下,dotnetzip。它的ZipFile类有一个AlternateEncoding属性,你可以从Encoding.GetEncoding()初始化它。您仍然需要找出使用的编码,知道文件的来源对于做出正确的猜测非常重要。日语的一个常见代码页是932。