Deserializing error with UTF-8 BOM (Byte Order Mark) Content #1115
Open
Description
Deserializing Panic with UTF-8 BOM (Byte Order Mark) Content
I encounter an issue when attempting to deserialize a string encoded in UTF-8 with a Byte Order Mark (BOM). The deserializer throws the following error: Error("expected value", line: 1, column: 1)
.
How to Reproduce
To reproduce the issue, encode a JSON file in UTF-8 with BOM and use from_reader
or from_str
for deserialization.
Workaround
As a temporary workaround, I check if the file content begins with the first three bytes of the BOM and remove them if present:
use std::fs;
fn main() {
// Specify the path to your file
let file_path = "path/to/your/file_with_bom.json";
// Read the file to a Vec<u8>
let mut data = fs::read(file_path).unwrap();
// UTF-8 BOM is three bytes: EF BB BF
if data.starts_with(&[0xEF, 0xBB, 0xBF]) {
// Remove the first three bytes (the BOM)
data = data[3..].to_vec();
}
// Proceed with deserialization...
}
Metadata
Assignees
Labels
No labels