使用 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);
我正在使用以下代码序列化一个 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);