AnsiString和UnicodeString的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AnsiString和UnicodeString的区别相关的知识,希望对你有一定的参考价值。

参考技术A 2009/2010/XE中的FileExists函数的参数为一个UnicodeString对象,即使你传入一个AnsiString对象,也会自动转换成UnicodeString类型的。 FileExists("c:\\123.txt"); FileExists(L"c:\\123.txt"); FileExists(AnsiString("c:\\123.txt")); FileExists(UnicodeString("c:\\123.txt")); 以上几种调用方式中,参数都会自动转换成UnicodeString,所以这几种调用方式都合法。

C++ Builder 2009 UnicodeString 正则表达式

【中文标题】C++ Builder 2009 UnicodeString 正则表达式【英文标题】:C++ Builder 2009 UnicodeString Regular Expressions 【发布时间】:2014-01-17 17:37:25 【问题描述】:

好奇的任何人都知道在C++ Builder 2009 中使用UnicodeString 执行正则表达式的一种简单、快速的方法。

特别是对于 IPv4 IP 地址。

【问题讨论】:

我使用了如下所示的 boost 正则表达式:***.com/questions/5804453/… @VenomFans 请将其发布为答案并接受它,以便其他人可以看到解决方案 @bluish,投票最多的解决方案是我使用的加上 url 参考。我不再有权访问 c++ builder(不同的工作),否则我会为您发布确切的答案。 【参考方案1】:

使用 DEELX 正则表达式引擎,我为它编写了一个 BCB 包装器,可从 here 下载(独立单头)。

char *text = "My ip is 212.122.090.180";
TMatchResult result;
TRegex <char> regex("\\b\\d1,3\\.\\d1,3\\.\\d1,3\\.\\d1,3\\b", IGNORECASE);
result = regex.Match(text, 0);
if(result.isMatched())
    printf("Found at %i-%i", result.start, result.length);
else
    printf("Not found.");

【讨论】:

我最终使用了 boost 解决方案,但给了你一个赞成票。

以上是关于AnsiString和UnicodeString的区别的主要内容,如果未能解决你的问题,请参考以下文章

我有这个unicodestring“Param�tres”,è被转换成未知字符。为啥?

UnicodeString基本操作(Ring0)

是否有一个Boyer-Moore字符串搜索和快速搜索和替换功能以及Delphi 2010 String(UnicodeString)的快速字符串计数?

AnsiString 不起作用(未定义 AnsiString 标识符)

python软文格式转换问题

使用 ansistring 时 FPC 退出代码 201。字符串不这样做