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); //输出:????
Dlang 字符串非ASCII字符转ASCII字符方法

原文地址: https://www.cveoy.top/t/topic/ocwo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录