Dlang 字符串非ASCII字符转ASCII字符方法
Dlang 实现将一个字符串的非ASCII字符转为ASCII字符的几种方式:
方式一:使用 Phobos 库中的 std.ascii.ascii 函数
import std.ascii;
string str = '你好,世界!';
string ascii_str = str.map!(c => ascii(c)).join;
writeln(ascii_str); //输出:????
方式二:使用 Phobos 库中的 std.string.toUTF8 函数将字符串转为 UTF-8 编码,然后再使用 std.ascii.ascii 函数将非ASCII字符转为问号
import std.string;
import std.ascii;
string str = '你好,世界!';
string utf8_str = toUTF8(str);
string ascii_str = utf8_str.map!(c => ascii(c)).join;
writeln(ascii_str); //输出:????
方式三:手动实现 ASCII 编码转换函数
string ascii(string str) {
string result;
foreach (c; str) {
if (c <= 0x7F) {
result ~= c;
} else {
result ~= '?';
}
}
return result;
}
string str = '你好,世界!';
string ascii_str = ascii(str);
writeln(ascii_str); //输出:????
原文地址: https://www.cveoy.top/t/topic/ocwo 著作权归作者所有。请勿转载和采集!