Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中的日本文化在英语操作系统中的应用_C#_.net_Character Encoding - Fatal编程技术网

C#中的日本文化在英语操作系统中的应用

C#中的日本文化在英语操作系统中的应用,c#,.net,character-encoding,C#,.net,Character Encoding,我有一个使用.NET3.5的C#应用程序。使用此应用程序,我保存一个文件,并使用vjlib库对其进行压缩,打开文件时,我将其解压缩。然而,当我试图将文件名命名为日语时,在用英语操作系统保存文件时,在打开应用程序时,它无法理解日语字符。这是由于某些Windows语言包等造成的。此问题很可能是由创建.zip文件的应用程序引起的。文件名在文件中以8位字符编码。ZIP规范规定,名称应在代码页437或utf-8中编码。代码页437是原始的IBM PC字符集,这种编码不支持任何日语字符。应用程序只使用自己的

我有一个使用.NET3.5的C#应用程序。使用此应用程序,我保存一个文件,并使用
vjlib
库对其进行压缩,打开文件时,我将其解压缩。然而,当我试图将文件名命名为日语时,在用英语操作系统保存文件时,在打开应用程序时,它无法理解日语字符。这是由于某些Windows语言包等造成的。

此问题很可能是由创建.zip文件的应用程序引起的。文件名在文件中以8位字符编码。ZIP规范规定,名称应在代码页437或utf-8中编码。代码页437是原始的IBM PC字符集,这种编码不支持任何日语字符。应用程序只使用自己的8位编码是很常见的,默认系统代码页通常都会确定这种编码


您使用的库是JScript的.NET运行时支持库。不确定它是否支持指定不同的编码,现在很难找到它的文档,因为它已经被弃用这么久了。考虑一下,比如说。它的ZipFile类有一个AlternateEncoding属性,您可以通过Encoding.GetEncoding()进行初始化。您仍然需要找出使用了什么编码,知道文件的来源对于做出正确的猜测非常重要。日语的一个常见代码页是932。

可能是编码问题,而不是文化问题。您可以详细说明一下如何指定名称或使用哪种字符编码吗?是基于unicode还是日本传统编码(如Shift JIS)?您使用的是哪个版本的windows?您是否激活了“东亚语言支持”?CodeInChaos:我使用的是utf-8编码。至少对于大多数当前的windows环境,如果操作系统是英文的,您需要设置日语支持(实际上所有远东语言-因为双字节字符支持不是默认设置)。