1 个不稳定版本
0.1.0 | 2020年9月13日 |
---|
#1722 在 编码
在 2 个包中使用(通过 zifu_core)
745KB
531 行
Rust 的地区名称到代码页
这是一个将表示地区名称的字符串转换为 Windows 中使用的代码页的库。
例如:
- 在
en-US
地区设置中,Windows-1252(代码页 ID:1252
)用作 ANSI 代码页,CP437(代码页 ID:437
)用作 OEM 代码页。 - 在
ja-JP
地区设置中,Shift_JIS(代码页 ID:932
)用作 ANSI 和 OEM 代码页。
用法
首先,将 locale_name_code_page = "<2"
添加到您的 Cargo.toml
。
[dependencies]
# *snip*
locale_name_code_page = "<2"
# *snip*
然后,将表示地区的字符串转换为代码页,如下所示
use locale_name_code_page::get_codepage;
use locale_name_code_page::cp_table_type::CodePage;
// IConverter has already been defined by you
fn get_converter_instance(codepage: &CodePage) -> Box<dyn IConverter> {
// do something
return Box::new(converter);
}
// *snip*
fn main() {
// *snip*
if let Some(codepage_ref) = get_codepage(locale_string) {
let converter = get_converter_instance(codepage_ref);
// *snip*
} else {
eprintln!("Error: {} doesn't represent a valid locale.", locale_string);
std::process::exit(1);
}
}
获取到的代码页(locale_name_code_page::cp_table_type::CodePage
的实例)可以如下使用
use locale_name_code_page::get_codepage;
fn main() {
let en_cp = get_codepage("en-US").unwrap();
// prints "en-US locale: 1252 (ANSI) / 437 (OEM)"
println!("en-US locale: {} (ANSI) / {} (OEM)", en_cp.ansi, en_cp.oem);
}
信息来源
常见问题解答
如何将代码页转换为编码器/解码器?
使用以下库
ANSI 编码(包括 CJKV 语言)
与 codepage 和 encoding_rs 结合使用。
OEM 编码(除了 CJKV 语言)
使用 oem_cp。
如何获取当前地区?
使用 locale_config。
我想将此库移植到其他语言。
您可以在您的自动代码生成脚本中使用 assets/nls_info.json
。
许可证
MIT
依赖项
~2.2–3MB
~56K SLoC