在C#中用特殊字符编写一个字符串

时间:2013-04-22 14:12:24

标签: c# encoding streamwriter

我正在尝试使用StreamWriter在缓存文件(.txt)中编写一个字符串。它正在工作但缓存文件中的字符串似乎与我想要复制的字符串不同。 我的输入字符串包含一个特殊字符'ƒ',写在缓存文件中的输出字符串包含一个经典的'f'。 我指定了一个编码:

var writer = new StreamWriter(stream, Encoding.GetEncoding("ISO-8859-1"))

我是否需要指定其他编码?

4 个答案:

答案 0 :(得分:4)

该字符(LATIN SMALL LETTER F WITH HOOK)未显示在iso-8859-1中,所以是的,您需要不同的编码;可能是utf-8。

答案 1 :(得分:2)

只需使用UTF-8编码即可。您的角色受其支持,如果大多数其他角色都在ASCII范围内,那么您的文件将不会大于使用ISO-8859-1编码编码的文件,因为UTF-8编码仅使用1个字节编码ASCII范围内的字符(如果这是一个问题)。 Here's more info from Wikipedia

答案 2 :(得分:1)

ISO-8859-1编码没有该字符。

您应始终使用Encoding.UTF8

答案 3 :(得分:0)

您应该使用UTF8 - ISO-8859-1中没有所需的字符。