作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用 the csv crate 读取包含中文字符的 CSV 文件时, 它有一个错误。
fn main() {
let mut rdr =
csv::Reader::from_file("C:\\Users\\Desktop\\test.csv").unwrap().has_headers(false);
for record in rdr.decode() {
let (a, b): (String, String) = record.unwrap();
println!("a:{},b:{}", a, b);
}
thread::sleep_ms(500000);
}
错误:
Running `target\release\rust_Work.exe`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Decode("Could not convert bytes \'FromUtf8Error { bytes: [208, 213, 195, 251], error: Utf8Error { va
lid_up_to: 0 } }\' to UTF-8.")', ../src/libcore\result.rs:788
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Process didn't exit successfully: `target\release\rust_Work.exe` (exit code: 101)
测试.csv:
1. 姓名 性别 年纪 分数 等级
2. 小二 男 12 88 良好
3. 小三 男 13 89 良好
4. 小四 男 14 91 优秀
最佳答案
我不确定如何使错误消息更清楚:
Decode("Could not convert bytes 'FromUtf8Error { bytes: [208, 213, 195, 251], error: Utf8Error { valid_up_to: 0 } }' to UTF-8.")
FromUtf8Error
记录在标准库中,错误文本显示“无法将字节转换为 UTF-8”(尽管中间有一些额外的细节)。
简单地说,您的数据不是 UTF-8,而且必须是。这就是 Rust 标准库(以及大多数库)真正处理的所有内容。您将需要弄清楚它的编码方式,然后找到某种将其转换为 UTF-8 的方法。可能有一个 crate以帮助处理其中任何一种情况。
也许更好的是,您可以从一开始就将文件保存为 UTF-8。可悲的是,人们在使用 Excel 时遇到这个问题相对常见,因为 Excel does not have a way to easily export UTF-8 CSV files .它总是以系统区域设置编码写入 CSV 文件。
关于csv - 如何在 Rust 中读取包含汉字的 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42327875/
我是一名优秀的程序员,十分优秀!