Rust: 중국어 문자는 어떻게 읽습니까?
1996 단어 Rust
1. 외부 라이브러리 인코딩
toml 파일 [dependencies]에서 다음을 추가합니다.
encoding = “0.2”
2. 중국어 문자가 있는 읽기와 쓰기
1. 중국어 문자가 없습니다. 예를 들어 모두 ASCII 코드로 가능합니다. 표준 라이브러리에 따라 쓰기/읽기
use std::io;
use std::io::prelude::*;
use std::fs::File;
fn main() -> io::Result {
let mut f = File::open("foo.txt")?;
let mut buffer = [0; 10];
// read up to 10 bytes
f.read(&mut buffer)?;
let mut buffer = Vec::new();
// read the whole file
f.read_to_end(&mut buffer)?;
// read into a String, so that you don't need to do the conversion.
let mut buffer = String::new();
f.read_to_string(&mut buffer)?;
// and more! See the other methods for more details.
Ok(())
}
//쓰기
use std::io::prelude::*;
use std::fs::File;
fn main() -> std::io::Result {
let mut buffer = File::create("foo.txt")?;
buffer.write_all(b"some bytes")?;
Ok(())
}
2. 중국어 문자가 있으면 위의 방법은 통하지 않는다.
extern crate encoding;
use encoding::all::GB18030;
use encoding::{DecoderTrap, EncoderTrap, Encoding};
// read
fn file_read(path: &str) -> io::Result {
let mut f = File::open(path)?;
let mut reader: Vec = Vec::new();
f.read_to_end(&mut reader).ok().expect("can not read file");
let content: String = GB18030.decode(&reader, DecoderTrap::Strict).unwrap();
println!("content:{}", content);
Ok(content)
}
// write
fn file_write(text: io::Result>, _path: &str) -> io::Result {
let text = text.unwrap();
let mut buffer = File::create(_path)?;
for tx in text {
//let tx_u8: Vec = tx.chars().map(|x| x as u8).collect(); ?
let tx_u8: Vec = GB18030.encode(&tx, EncoderTrap::Strict).unwrap();
buffer.write_all(&tx_u8)?;
}
Ok(())
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rust의 가상 통화 (BitZeny) 마이닝 도구 ManukaZeny유명한 BitZeny 마이닝 툴인 을 Rust로 래핑한 툴입니다. Slack에 대한 상태 알림 프로세스의 시작과 끝과 해시 속도의 평균을 Slack에 알립니다. 예비 주소로 자동 전환 프로세스가 떨어지거나 연결에 실...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.