【发布时间】:2018-06-18 20:21:10
【问题描述】:
Unicode 字符串可以包含代理对(尤其是表情符号)。现在我需要将此字符串截断为 n 个字符。我怎样才能在不破坏任何表情符号的情况下安全地做到这一点?
【问题讨论】:
-
您的意思可能是“代理对”,而不是“多字节字符”。回想一下自 Delphi 2009 以来的
sizeof(char) = 2。 -
@Victoria : leftStr 在内部使用 Copy 我不认为 Copy 照顾代理 :(
-
由多个代码点组成的字符呢?但是对于您的问题,您可以遍历字符串计数,考虑代理对。不难。不确定有什么内置的。
-
@Victoria:确实,如果它真的那么简单,我们可以简单地使用
SetLength来截断字符串。
标签: delphi