使用JavaScriptSerializer序列化C#对象会在UTF8字符串

时间:2017-06-30 15:23:53

标签: c# json r utf-8 javascriptserializer

我使用以下代码序列化C#对象:

            var serializer = new JavaScriptSerializer();
            var serializedResult = serializer.Serialize(rawFile);
            Console.WriteLine(serializedResult);
            return;

尝试使用目标框架从4.5到4.6.1进行序列化。

然后我尝试将其反序列化为R:

     > x <-  read_json("C:\\dump.txt")
     Error in parse_con(txt, bigint_as_char) : 
     lexical error: invalid bytes in UTF8 string.
             ": "Sample pickup:\nVolume [æl]         :     1.00\nFlow [æl
                        (right here) ------^

我猜这些都是微升。如何最好地处理这些特殊字符?

谢谢。

1 个答案:

答案 0 :(得分:0)

关键提示来自谢尔盖“如果你将它输出到控制台,那么......它可能会被打破。”

使用File.WriteAllText解决了这个问题:

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string serializedResult = serializer.Serialize(rawFile);
            // byte[] bytes = Encoding.Default.GetBytes(serializedResult);
            // string myString = Encoding.UTF8.GetString(bytes);
            File.WriteAllText("dump2.txt", serializedResult);