C# UTF-8编码转换控制字符>;127到?
我有一个包含字母、数字、特殊字符和控制字符的二进制文件,如下所示C# UTF-8编码转换控制字符>;127到?,c#,C#,我有一个包含字母、数字、特殊字符和控制字符的二进制文件,如下所示 ESC!€STANDARD + UNDERLINE ESC!COMPRESSED + UNDERLINE ESC!ˆSTANDARD + EMPHASIZED + UNDERLINE 我正在执行以下操作 string file = FileOpenDlg.FileName; System.IO.StreamReader myFile = new System.IO.StreamReader(file); string data
ESC!€STANDARD + UNDERLINE
ESC!COMPRESSED + UNDERLINE
ESC!ˆSTANDARD + EMPHASIZED + UNDERLINE
我正在执行以下操作
string file = FileOpenDlg.FileName;
System.IO.StreamReader myFile = new System.IO.StreamReader(file);
string data = myFile.ReadToEnd();
byte[] sendCmd = Encoding.UTF8.GetBytes(data);
这将替换十六进制值大于80到?的€、ˆ等?。当我把这个发给打印机时,它给出了错误的答案
如何处理这些字符?感谢及时的帮助 二进制文件中的文本编码是什么?当您读取文件时,代码中的“data”变量是否包含具有有效和正确字符的字符串(在VS debugger中可读)?可能打印机需要ANSI代码,因此您应该尝试使用
编码.Default.GetBytes()
。或者,如果打印机的代码页与操作系统的代码页不匹配,则可能需要为特定代码页创建编码。有一个带有字母的二进制文件。如果它是二进制的,则读取并将其视为字节[]
。如果是字母,告诉流读取器它使用的是什么编码。打印机需要ANSI文件格式。我尝试使用encoding.Default.Getbytes(),即使这样也会将字符€,ˆ替换为?。