için döküm Bir dosyadan okunan bir Vec<u8>
baytım var - baytlar bir metin biçimidir (büyük olasılıkla UTF-16 veya başka bir aptal 2 bayt biçimi) ve onu açmak istiyorum UTF-8.V1 <u8> için bir & [u16]
error: mismatched types:
expected `*const u16`,
found `*const core::result::Result<u8, std::io::error::Error>`
(expected u16,
found enum `core::result::Result`) [E0308]
Ben yapmalı map
: nedeniyle take()
çağrısına muhtemelen hataları alıyorum çalışmalıdır bu iken
let title: &[u16] = unsafe { std::slice::from_raw_parts(title_data.as_ptr(), title_data.len()) };
: Şu
let title = Vec::from_iter(bytes.take(title_length));
// Some Vec<u8> to &[u16] magic
let title = String::from_utf16_lossy(title);
Bu oldukça kirli kodunu kullanıyorum take
yineleyici veya başka bir şey?
Bu çok iyi bir soru olurdu, eksik görünmüyor muydu. ;) –
Bu garip. Bunu yaparken de bana sorun veriyordu. Bir saniye bekle:/ –
Lütfen sorununuzun bir [MCVE] (/ help/mcve) belirtin. Kodunuzun bir satırı, title_data'ya başvurur, ancak bu hiçbir zaman hiçbir yerde tanımlanmamıştır. İdeal olarak, [Rust Oyun Alanı] (https://play.rust-lang.org/) – Shepmaster