gpt4 book ai didi

c++ - 替换字符串 C++ 中的无效 XML unicode 序列

转载 作者:行者123 更新时间:2023-11-28 04:56:27 25 4
gpt4 key购买 nike

在 C++ 中寻找与 Java 中的 Character.isIdentifierIgnorable() 对应的函数。基本上我必须用从它们派生的另一个字符串替换它们(这样信息就不会丢失)。

我在 Java 中的实现:

public static String replaceInvalidChar (String s) {
StringBuffer sb = new StringBuffer();

char[] characters = s.toCharArray();

for (char c : characters) {
if (Character.isIdentifierIgnorable(c)){
sb.append(String.format("\\u%04x", (int)c));
} else {
sb.append(c);
}
}

return sb.toString();
}

打算在 C++ 中做同样的事情,但为了替换字符,我需要先检测它们。有人可以帮助我吗?

最佳答案

根据我收集到的有关 Character.isIdentifierIgnorable() 工作原理的信息,以下内容可能对您有用:

std::wstring replaceInvalidChar(std::wstring const& s)
{
std::wostringstream sb;

for(auto c: s)
{
if(std::iswcntrl(c) && !std::iswspace(c))
sb << L"\\u" << std::hex << std::setw(4) << std::setfill(L'0') << int(c);
else
sb << wchar_t(c);
}

return sb.str();
}

关于c++ - 替换字符串 C++ 中的无效 XML unicode 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47027855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com