Crates.io | encoding_rs_transcode |
lib.rs | encoding_rs_transcode |
version | 0.8.3 |
source | src |
created_at | 2023-04-05 19:37:40.932584 |
updated_at | 2023-04-17 15:19:53.468505 |
description | Transcode text within writers using encoding_rs |
homepage | |
repository | https://github.com/VincentFoulon80/encoding_rs_transcode |
max_upload_size | |
id | 831351 |
size | 10,507 |
This library allows you to easily transcode text within writers.
The transcoding is performed by encoding_rs, this library just provides a simple builder to ease the use with external writers.
extern crate csv;
use std::fs::File;
use encoding_rs_transcode::{encoding_rs::WINDOWS_1252, TranscoderBuilder};
fn main() {
// Create a file writer
let file = File::create("test.csv").unwrap();
// Create a transcoder that'll transcode the input to WINDOWS_1252
let transcoder_writer = TranscoderBuilder::new()
// .from_encoding(UTF_8) // implied by new()
.to_encoding(WINDOWS_1252)
.build_writer(file);
// Create a CSV writer
let mut csv_writer = csv::Writer::from_writer(transcoder_writer);
// Write to the CSV file
csv_writer.write_record(["foo", "bar"]).unwrap();
csv_writer.write_record(["aceio", "àcéîö"]).unwrap();
// The CSV file will now be encoded in WINDOWS_1252, without the CSV crate ever
// aknowledging the final encoding.
// This can be applied to any writer implementing the `Write` trait.
}