检测字符串中的 Unicode 字符
Detect Unicode Character in string
我有字符串输入。我想检查所有字符并提示用户输入字符串中是否有任何 Unicode 字符。
如何在C++中进行此验证。
例如。在记事本中,如果您输入任何 Unicode 字符并尝试使用 ANSI 编码保存它,它将提示 Unicode 字符。我想做类似的验证。
您可以使用 IsTextUnicode 函数。据我所知,这就是记事本使用的功能。
MSDN-Link:http://msdn.microsoft.com/en-us/library/windows/desktop/dd318672%28v=vs.85%29.aspx
只需插入 NULL 作为最后一个参数。
#include <string>
#include <Windows.h>
int main()
{
std::string s = "Hallo!";
std::wstring ws = L"Hello!";
if (::IsTextUnicode(ws.c_str(), ws.length(), NULL) == 1)
{
// is unicode
int i = 0;
}
else
{
// no unicode
int i = 1;
}
return 0;
}
记事本警告您的内容略有不同:它警告您无法转换为所需代码页的 Unicode 字符。IOW,WideCharToMultiByte(CP_ACP, ..., &lpUsedDefaultChar)
会导致lpUsedDefaultChar
设置为 TRUE。
CP_ACP
替换您想要的编码,除了没有意义的CP_UTF8
。UTF8 支持所有 Unicode 字符。
一个简单的方法是允许 Unicode 并将文本存储为 UTF-8。由于 UTF-8 是 ASCII 的超集,因此很容易找到不是 ASCII 的字符(它们设置了高位(。
相关文章:
- 如何存储 unicode 字符并将其输出到文件?
- C++:打印 Unicode 字符
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 获取Unicode字符C++的十进制值
- 用wchar_t处理 unicode 字符好吗?它不会引起任何问题吗?
- C++:如何将 unicode 字符打印到文本文件
- 动态计算 unicode 字符
- 如何将整数转换为 unicode 字符
- C++20 中的严格别名规则是否允许标准 c++ unicode 字符和下划线类型之间"reinterpret
- MessageBox打印来自TCHAR缓冲区的额外Unicode字符
- 如何将小数NCR转换为Unicode字符(C )
- SQLGetPrivateProfileString 错误地读取 Unicode 字符
- 将 Unicode 字符/字符串写入文件
- 将 Unicode 字符存储在.txt文件中的新行中
- 从终端 C++ 中的字符串中打印出 unicode 字符
- Unicode 字符分类与 boost::locale
- 字符数组中的滤波器unicode字符
- Unicode 字符问题/转换参数
- 从包含Unicode字符的文件中读取
- 从ASCII到Unicode字符代码的转换(FreeType2)