考虑一个记事本Text.txt,其中的数据只能用字体“Terminal”读取。如何在C#中实现?只有当我将字体设置为“终端”时,记事本的内容才可读。否则,我只能看到盒子。 C#必须使用“终端”字体读取内容,以便它可以获取确切的数据而不是BOX。试用UTF8。同样的回应。如何使用C#读取特定字体的文本数据?
即使我在这里写记事本的内容我可以看到连字符。
EG:
该文本是 - 但我没有意思连字符。实际的单词是n之上的双点。只能在记事本中使用Terminal字体才能看到。
考虑一个记事本Text.txt,其中的数据只能用字体“Terminal”读取。如何在C#中实现?只有当我将字体设置为“终端”时,记事本的内容才可读。否则,我只能看到盒子。 C#必须使用“终端”字体读取内容,以便它可以获取确切的数据而不是BOX。试用UTF8。同样的回应。如何使用C#读取特定字体的文本数据?
即使我在这里写记事本的内容我可以看到连字符。
EG:
该文本是 - 但我没有意思连字符。实际的单词是n之上的双点。只能在记事本中使用Terminal字体才能看到。
你的问题很可能是文本文件的编码(代码页)。 用什么语言编写的文本文件? 例如,如果文件中包含希腊文本(代码页1253),你可以使用这样的事情:
System.Text.Encoding GreekEncoding = System.Text.Encoding.GetEncoding(1253);
System.IO.StreamReader sr = new StreamReader(@"c:\test.txt", GreekEncoding);
System.Diagnostics.Debug.WriteLine(sr.ReadLine());
sr.Close();
sr.Dispose();
虽然我没有得到一个完美的解决方案,但你的编码思想给了实验的不同想法。我在应用程序的文本框中获得了不同的数字,当我将这些数字复制并粘贴到记事本中时,我得到了我想要的完美结果。没有编码上述技术(从文本框中获取数据并粘贴到记事本中)也失败了。所以谢谢@svenv! –
而下面我已经解释了我如何摆脱这一点。 –
其实是有保存在.txt files
没有font
信息。
只需使用C#中相同的字体,您希望在.txt文件中看到该字体。
“终端”字体在Visual Studio 2005中不可用! –
让我知道如何使用字体来阅读它。你能给我举个例子,c#中用来读取数据的默认字体是什么。 –
文本数据始终是独立的字体,所以我觉得这是你的问题没有这样的答案
正确!但应用程序的文本框不显示我有问题的内容。它看起来像逗号,连字符等,但不像上面的双点那样是原件。因为“终端”字体在VS 2005中不可用! –
Encoding GreekEncoding = Encoding.GetEncoding(1254);
using (StreamReader sr = new StreamReader(sNotepadName+".txt", GreekEncoding))
{
while ((input = sr.ReadLine()) != null)
{
sTempInput = input.Split('='); //Data - double dotted above A=A
lMyDictionary.Add(sTempInput[0],sTempInput[1]);
}
}
添加到字典后,如果输入是我显示双点上方的符号在文本框中。
string[] sSplitedText = sEnteredText.Split(' '); //Because many letters can be entered with sapce as delimiter
foreach(string sNewStr in sSplitedText)
{
if (lMyDictionary.ContainsKey(sNewStr))
{
sReturnText += lMyDictionary[sNewStr];
}
}
ResultDisplayTextBox.Text = sReturnText;
由于“终端”的字体是不是在VS2005提供的结果在文本框将是一个盒子或逗号或连字符等,如果这个数据被复制并在记事本粘贴“终端”的字体,我们可以看到的数据。如果不使用编码技术,即使您从文本框粘贴数据,它也会看起来像一颗心或任何其他符号。所以我的问题被整理出来了。感谢你的回复。
需要更多信息 – CyprUS
你想要什么?文本数据与字体无关。渲染/打印等可以显示数据到不同的字体 – Tilak
在显示文本的应用程序中使用相同的字体。 – animaonline