C# 如何从文件中读取此文本
如何阅读下面的课文 ‰€�#îõ‘þüŠ ꑯõù ‚†ƒ� -#�ª÷‘þü “‘ ª“îù )øþ¦ùý ¤ª—ùý î‘õ•þø—¤(#•¢þ¢� ø÷ùùîùõþ#aú�ö ¤�ù ¢�△cˆˆƒ�#‚€� «.: õ¬ø¤Š ›¢øñ#…�…ˆí/Š…/ …€�…ŠTK{^aˆˆƒ�#†/„男朋友 î‘õ•þø—¤ý#ª“îùû‘ý î‘õ•þø—¤ý -- �¥c 我使用此代码,但不显示所有字符C# 如何从文件中读取此文本,c#,encoding,character-encoding,C#,Encoding,Character Encoding,如何阅读下面的课文 ‰€�#îõ‘þüŠ ꑯõù ‚†ƒ� -#�ª÷‘þü “‘ ª“îù )øþ¦ùý ¤ª—ùý î‘õ•þø—¤(#•¢þ¢� ø÷ùùîùõþ#aú�ö ¤�ù ¢�△cˆˆƒ�#‚€� «.: õ¬ø¤Š ›¢øñ#…�…ˆí/Š…/ …€�…ŠTK{^aˆˆƒ�#†/„男朋友 î‘õ•þø—¤ý#ª“îùû‘ý î‘õ•þø—¤ý -- �¥c 我使用此代码,但不显示所有字符 FileStream fs = new FileStream(open.FileNam
FileStream fs = new FileStream(open.FileName, FileMode.Open, FileAccess.Read);
System.Text.Encoding enc = System.Text.Encoding.UTF8 ;
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
string text = enc.GetString(data);
并显示文本:
-欧元†�#îõâ� �˜Ã¾Ã¼Å
ꑯõù ‚†ƒ� -#�ª÷‘þü
“‘ ª“îù )øþ¦ùý
¤ª—ùý î‘õ•þø—¤(#�
�¢þ¢� ø¤÷¢ù ꑯõù
Ã#######################�ö
^b掼、掼、掼、掼、掼�ù
¢Â�÷cˆˆÆ�#‚₠¬Â� «.:
õ¬ø¤Š›¢øñ#…Â�…ˆÃ/Å
…/ …€Â�阿尔法塔克{^aˆˆÆ'�#â€
/陜陜陜陜陜陜陜陜陜陜陜陜陜陜陜陜陜陜陜3849
î‘õ•þø—¤ý#�
�œÃÃÃÃÃÃýÃÃõ
这是一个文本DOS
这段文字的编码是:
IBM037
IBM437
IBM500
ASMO-708
DOS-720
ibm737
ibm775
ibm850
ibm852
IBM855
ibm857
IBM00858
IBM860
ibm861
DOS-862
IBM863
IBM864
IBM865
cp866
ibm869
IBM870
windows-874
cp875
shift_jis
gb2312
ks_c_5601-1987
big5
IBM1026
IBM01047
IBM01140
IBM01141
IBM01142
IBM01143
IBM01144
IBM01145
IBM01146
IBM01147
IBM01148
IBM01149
utf-16
unicodeFFFE
windows-1250
windows-1251
Windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
Johab
macintosh
x-mac-japanese
x-mac-chinesetrad
x-mac-korean
x-mac-arabic
x-mac-hebrew
x-mac-greek
x-mac-cyrillic
x-mac-chinesesimp
x-mac-romanian
x-mac-ukrainian
x-mac-thai
x-mac-ce
x-mac-icelandic
x-mac-turkish
x-mac-croatian
utf-32
utf-32BE
x-Chinese-CNS
x-cp20001
x-Chinese-Eten
x-cp20003
x-cp20004
x-cp20005
x-IA5
x-IA5-German
x-IA5-Swedish
x-IA5-Norwegian
us-ascii
x-cp20261
x-cp20269
IBM273
IBM277
IBM278
IBM280
IBM284
IBM285
IBM290
IBM297
IBM420
IBM423
IBM424
x-EBCDIC-KoreanExtended
IBM-Thai
koi8-r
IBM871
IBM880
IBM905
IBM00924
EUC-JP
x-cp20936
x-cp20949
cp1025
koi8-u
iso-8859-1
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
x-Europa
iso-8859-8-i
iso-2022-jp
csISO2022JP
iso-2022-jp
iso-2022-kr
x-cp50227
euc-jp
EUC-CN
euc-kr
hz-gb-2312
GB18030
x-iscii-de
x-iscii-be
x-iscii-ta
x-iscii-te
x-iscii-as
x-iscii-or
x-iscii-ka
x-iscii-ma
x-iscii-gu
x-iscii-pa
utf-7
utf-8
看起来你要打开一个.dat文件,从外观上看,这个文件可能是用字节格式写的 请尝试以下代码
File readThis = new File("file directory");
byte[] aByte = new byte[(int)readThis.length()];
FileInputStream Fis = new FileInputStream(readThis);
Fis.read(aByte);
System.out.println(Contents: "+aByte);
Fis.close();
让我知道它是如何运行的:)要读取该文件,您需要知道该文件中使用了什么编码。
如果你不知道,你可以迭代所有的编码,看看是否找到一个有效的
const string FileName = "FileName";
foreach (var encodingInfo in Encoding.GetEncodings())
{
try
{
var encoding = encodingInfo.GetEncoding();
var text = File.ReadAllText(FileName, encoding);
Console.WriteLine("{0} - {1}", encodingInfo.Name, text.Substring(0, 20));
// put break point and check if text is readable here
}
catch (Exception ex)
{
Console.WriteLine("Failed: {0}", encodingInfo.Name);
}
}
免责声明:假设这是一个文本文件,假设该文件不是很大。它应该是什么语言?它不是UTF8。可能会提供原始文件的链接?这两个文本看起来都像stackoverflow中的胡言乱语。@Ignacio:他可能在Windows上,不知道你在说什么。(除非你对tofutim发表评论?)这是不可回答的。以十六进制(或base64)格式发布文件(开头)表示法,最好是已知结果。您可以在文件中写入编码名称和编码的前20-30个字符。我认为更容易找到正确的字符,而不是在调试器中逐条检查所有字符。@Liviu Trifoi-如果我知道其中包含的字符类型,我会同意。如果这是阿拉伯语,或中文。如果未设置控制台编码,这些将无法在控制台中正确显示。没有太多的编码需要迭代,我只会在调试器中执行,以排除控制台显示问题。@user764499-您可以将文件上载到某个位置吗?例如?@user764499-您找到解决方案了吗?