使用 JavaScriptSerializer 序列化 C# 对象会在 UTF8 字符串中产生无效字节

serializing C# objects with JavaScriptSerializer produces invalid bytes in UTF8 string

我正在使用以下代码序列化一个 C# 对象:

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

尝试使用 Target Frameworks 从 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) ------^

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

谢谢。

关键提示来自谢尔盖"If you output it to console, well... it can be broken."

使用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);