当前位置:  开发笔记 > 编程语言 > 正文

System.Text.Encoding.GetEncoding("iso-8859-1")抛出PlatformNotSupportedException?

如何解决《System.Text.Encoding.GetEncoding("iso-8859-1")抛出PlatformNotSupportedException?》经验,为你挑选了2个好方法。

请参阅主题,请注意,此问题仅适用于.NET compact框架.这种情况发生在Windows Mobile 6 Professional SDK附带的模拟器以及我的英文HTC Touch Pro(所有.NET CF 3.5)上.iso-8859-1代表西欧(ISO),它可能是除了us-ascii之外最重要的编码(至少当一个用户网帖的数量).

我很难理解为什么不支持这种编码,而支持以下版本(同样在模拟器和我的HTC上):

iso-8859-2(中欧(ISO))

iso-8859-3(Latin 3(ISO))

iso-8859-4(波罗的海(ISO))

iso-8859-5(西里尔文(ISO))

iso-8859-7(希腊语(ISO))

那么,支持希腊语比支持德语,法语和西班牙语更重要吗?任何人都可以对此有所了解吗?

谢谢!

安德烈亚斯



1> splattne..:

我会尝试使用"windows-1252"作为编码字符串.根据维基百科,Windows-1252是ISO-8859-1的超集.

System.Text.Encoding.GetEncoding(1252)


嗨这种方法在某些情况下非常麻烦,例如,当您有一个带有ISO-8859-1编码的XML流时.在将其提供给XML阅读器之前,您需要将编码"iso-8859-1"替换为"windows-1252".

2> Otis..:

这篇MSDN文章说:

.NET Compact Framework支持所有设备上的字符编码:Unicode(BE和LE),UTF8,UTF7和ASCII.

对代码页编码的支持有限,并且只有在设备的操作系统识别编码时才有.

如果设备上没有所需的编码,.NET Compact Framework将抛出PlatformNotSupportedException.

我相信所有(或至少很多)ISO编码都是代码页编码,属于"有限支持"规则.作为替代品,UTF8可能是您最好的选择.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有