2017-12-29 28 views
1

문자열로 변환하려는 u8 슬라이스가 있습니다. 각 u8을 리터럴 유니 코드 코드 포인트 (즉, U + 0000에서 U + 00FF)로 처리합니다.유니 코드 포인트의 [u8]을 녹에서 str로 변환하는 방법은 무엇입니까?

내가 찾은 가장 가까운 from_utf8은 슬라이스를 UTF8로 해석하지만 UTF8 이후가 아니지만 대신 문자 코드 포인트입니다.

어떻게 하시겠습니까?

+0

녹의 [ 'char's] (https://doc.rust-lang.org/std/primitive.char.html)는 [Unicode 스칼라 값]입니다 (http://www.unicode.org/glossary/#unicode_scalar_value); 충분하다면 각 바이트를'char'에 캐스트하면됩니다. – ljedrz

+0

[ISO-8859-1/Latin-1을 문자열 (UTF-8)로 변환하는 옵션은 무엇입니까?] (https://stackoverflow.com/questions/28169745/what-are-the-options) -to-convert-iso-8859-1-latin-1-to-a-string-utf-8) – trentcl

+0

Latin-1로 인코딩 된 텍스트의 디코딩을 '문자열'에 정확히 요구하는 것처럼 들립니다. – trentcl

답변

3
fn main() { 
    let codepoint_array: Vec<u8> = "test".into(); 
    let codepoints: Vec<char> = codepoint_array.into_iter().map(char::from).collect(); 
    println!("{:?}", codepoints); 
} 

(이 작업을 수행 할 것입니다 그 이유는 당신에게 라틴어-1 보충과 라틴 확장 A,하지만 아무것도를 줄 것이기 때문에 나는 ..., 아무 생각이 없음)

+0

아, 간단합니다. 내가받는 데이터는 정확하게 이와 같이 정의됩니다. – Roxy

+0

[문자열'로] (https://play.rust-lang.org/?gist=a2bfc4c1ce64658d0fec5382fa114960&version=stable)을 수집 할 수도 있습니다. –