我有一个从存储在UTF8编码的XML文件中读取的文本。C#可以完美地读取它,我通过调试器进行了检查,但是当我尝试将其转换为ASCII以保存在另一个文件中时,会在存在冲突字符的位置得到一个? 字符。例如,这个文本:
I have a text read from a XML file stored in UTF8 encoding. C# reads it perfectly, I checked with the debugger, but when I try to convert it to ASCII to save it in another file I get a ? char in places where there was a conflicting character. For instance, this text:
string s = "La introducción masiva de las nuevas tecnologías de la información";
将被保存为
"La introducci?n masiva de las nuevas tecnolog?as de la informaci?n"
我不能仅仅用它们的拉丁语元音字母(a, e, i, o, u)来替换它们,因为西班牙语中的一些单词将失去意义。我已经尝试过这个和这个问题,但都没有成功。所以我希望有人能帮助我。第二个问题中选择的答案甚至没有编译通过...!
如果有人想看一下我的代码,就是这样:
private void WriteInput( string input )
{
byte[] byteArray = Encoding.UTF8.GetBytes(input);
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);
string finalString = Encoding.ASCII.GetString(asciiArray);
string inputFile = _idFile + ".in";
var batchWriter = new StreamWriter(inputFile, false, Encoding.ASCII);
batchWriter.Write(finalString);
batchWriter.Close();
}