|
|
1
28
WideCharToMultiByte 对于指定的字符集不支持的任何字符(包括去除音调符号),都是最适合的映射。您可以使用它并将20127(US-ASCII)作为代码页传递,从而完全满足您的需要。
用你的例子来调用它会产生你想要的结果,包括emdash-to-minus大小写,我不认为这是由Jeroen的建议来处理的,将其转换为标准化形式d。如果你确实想采用这种方法,Michael Kaplan有一个 blog post 显式讨论了剥离音调符号(而不是一般的规范化),但它使用了C和在Vista中引入的API。您可以使用foldstring API(任何Winnt版本)获得类似的内容。 当然,如果您只对一个字符集执行此操作,并且希望避免从宽字符串转换到宽字符串和从宽字符串转换到宽字符串的开销,那么padu正确地认为简单的for循环和查找表也同样有效。 |
|
|
2
7
为了延长克雷格对Delphi2009的回答: 如果使用Delphi2009和更新版本,则可以使用具有相同结果的更可读代码:
不幸的是,此代码仅在MS Windows上有效。在Mac电脑上,重音符号不是用最合适的字符代替,而是用问号代替。 显然,Delphi内部在Windows上使用了WideChartoMultiByte,而在Mac上则使用了Iconv(请参见system.pas中的localeCharsfromUnicode)。 问题是,不同操作系统上的这种不同行为是否应被视为bug并报告给codeCentral。 |
|
|
3
3
我相信你最好的选择是创建一个查阅表格。 |
|
|
4
1
|
|
zeus · 如何在调整数组大小后保持指向动态数组的指针有效? 1 年前 |
|
|
SignalOne · 德尔福(FMX)循环参考 1 年前 |
|
|
Sascha Ott · 如何从线程调用线程的方法? 2 年前 |
|
|
user1580348 · 问题:如何在上次最小化后还原应用程序? 2 年前 |
|
tua · Delphi的TLinkLabel坏了吗? 2 年前 |
|
|
Frank.Wu · delphi:RGB到HSL不正确 2 年前 |