将xml字符串中的Unicode数据插入Datatable

D.d*_*osh 10 c# xml unicode

我想使用以下代码将unicode数据从xml字符串保存到数据库中:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlText);

using (XmlNodeReader xmlReader = new XmlNodeReader(xmlDoc))
{
        DataTable dt = new DataTable();
        dt.TableName = "sms";
        dt.Columns.Add("rowID");
        dt.Columns.Add("origAddr");
        dt.Columns.Add("time");
        dt.Columns.Add("message");
        dt.ReadXml(xmlReader);
        return dt;
}
Run Code Online (Sandbox Code Playgroud)

但是当我将数据表保存到数据库中时,我的unicode字符会出现问号(???????)

我的数据库归类是正确的,并且正确存储了其他unicode字符.

因为英文写作不好,我向你道歉:)

Moh*_*han 2

通常,当源文本未存储为 Unicode 时,就会发生这种情况。例如,如果您从文本文件中读取 xml 数据,并且该文本文件存储为 Ansi(使用代码页),或者存储为没有 BOM(字节顺序标记或签名)的 Unicode 文件,则当您读取文本时文件中,非 ASCII 字符可能无法正确读取。
要解决此问题,请在文本编辑器(例如Notepad++)中打开源 xml 文件,并将编码更改为 Unicode 或 UTF-8,然后保存文件。
您还可以在记事本中打开文件,并将文件另存为 Unicode(文件/另存为 -> 编码:Unicode 或 UTF-8)。确保在记事本中打开文件时,字符显示正确。