Comments (1)
Thanks for you comment, @acfoltzer.
My first stab at this code was as follows:
Sorry to be pedantic but this is wrong in the general case because Rust strings are UTF-8 and char
is 32 bits in size. For example:
Disclaimer: google translate
use std::str;
fn main() {
let mut buffer = vec![];
for c in "Der schnelle braune Fuchs springt über den faulen Hund".chars() {
buffer.push(c as u8);
}
println!("{}", unsafe { str::from_utf8_unchecked(&buffer) });
}
Produces:
Der schnelle braune Fuchs springt ber den faulen Hund
Note that ü
is missing. And actually using str::from_utf8(&buffer).unwrap()
would have resulted in a panic.
This would be the proper way to byte serialize Rust strings:
use std::str;
fn main() {
let mut buffer = vec![];
for b in "Der schnelle braune Fuchs springt über den faulen Hund".as_bytes() {
buffer.push(*b);
}
println!("{}", str::from_utf8(&buffer).unwrap());
}
This gives back:
Der schnelle braune Fuchs springt über den faulen Hund
it just might be worth pointing out that other common ways might not produce this result.
sounds reasonable
from discovery.
Related Issues (20)
- Chapter 7.1: Error failed attaching to target HOT 3
- This guide probably only works for Linux HOT 6
- error: linking with `rust-lld` failed: exit code: 0xc0000374
- Why can't I use gdb even though I set up the environment according to the build manual? Please help me. HOT 1
- Unit testing? HOT 1
- 5.3 'Debug It' gdb could not load XML target description HOT 1
- problem at 05-led-roulette, gdb debugging on windows10, incompatible version? HOT 1
- OpenOCD configuration for F3Discovery changed in v0.12
- Simple Chinese Tranlation HOT 4
- hidapi error: Failed to open a device with path '/dev/hidraw4': Permission denied HOT 1
- 3,4 Can't Verify Install - Failed Attaching To Target
- Additional content - snake game HOT 1
- [Chapter 5.3] compiled code seems to be optimized HOT 1
- error: Package `led-roulette v0.2.0 does not have the feature `v2` HOT 3
- Failed to parse inteface number in hardware IDs. HOT 2
- Definition of `meta` key not clear in Minicom
- [Chapter 5.3] Continue hangs, stuck at "0x00000000 in __vector_table ()"
- Extract STM32 discovery book to separate repo and archive HOT 1
- Extract and archive support for microbit:v1 HOT 2
- Micro:bit V2 Project Template
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from discovery.