chr(153)(商标符号)在Unicode中的等价物是什么?

7
在早期的Delphi版本中,我可以使用


s:=chr(153);

如何在字符串中插入商标符号?在 Delphi 2010 中,之前的方法不再适用,可能与 Unicode 有关。请提供等效的代码字符串来将商标符号插入我的字符串中。


3
你听说过 charmap.exe 吗?按下Win+R,输入“charmap.exe”,按Enter键,选择一个好的Unicode字体(例如Arial Unicode MS或Lucida Sans Unicode或在这种情况下,甚至是Tahoma),选择高级模式,确保字符集是Unicode,并搜索“trademark”。 - Andreas Rejbrand
1
顺便问一下:这与ASCII有什么关系?ASCII只有128个字符,分别命名为0、1、...、127。你可能指的是ANSI或Windows-1252。 - Andreas Rejbrand
直接使用它作为文字有什么问题吗?s:='™'; - Michael Madsen
1
@Michael:只有当你的源代码保存为以Unicode形式编码的文件时,它才能正常工作。如果你的源代码不是这样的话,那么用户看到的完全取决于文件的编码方式。 - Jeroen Wiert Pluimers
6个回答

11

在D2010中,我可以这样做:

s := '™' + chr(8482) + #8482;  // yields 3 subsequent TM symbols

结果:™™™

这是一篇好文章,由Joel亲自撰写 - 事实上,我今天刚重新阅读了它。
http://www.joelonsoftware.com/articles/Unicode.html


9
我非常确定 chr(153) 是 "Ö" (Code page 437),哦等等,它是 "r" (EBCDIC 037)。
实际上,除非您还指定要使用的代码页,否则 chr(153) 是未定义的。这正是您应该使用Unicode的原因。
维基百科有大多数Unicode符号的页面,并包括它们的Unicode码点
有普通的商标符号,其Unicode码点为U+2122 (Delphi: Chr($2122)#$2122)。 还有注册商标符号,其Unicode码点为U+00AE(Delphi: Chr($00AE)#$00AE)。 Unicode网站有一个图表列表,您可以在其中找到所有符号,但需要时间来熟悉如何找到它们(因为图表数量有点大)。 普通商标符号是类似字母的符号的一部分。 注册商标符号是Latin-1 Supplement的一部分。
--jeroen

1
我也会为 Unicode 书籍辩护。我曾经从特价货架上买到了 Unicode 4.0 的书,它是一件很好的武器 :-) 顺便说一句,它也可以作为一个很好的参考资料。 - Marco van de Voort

3
根据“类似字母符号”Unicode代码表,TM符号是Unicode U+2122。我不太了解Delphi如何将其转换为字符-也许。
s := chr(8482);

?(8482是十六进制2122的十进制表示)

或者,查看this page后,您可以尝试:

s := #$2122;

在Delphi中,它将是#$2122 -- #符号表示一个字符,$使其成为十六进制数。 - Nick Hodges

1

这是字符 U+2122 (http://www.fileformat.info/info/unicode/char/2122/index.htm)。我已经很久没有使用 Delphi 了,但在尝试其他任何操作之前,您应该尝试直接输入该字符(可能需要使用类似于 Windows 的 charmap.exe 或 BabelMap 的字符映射实用程序)。这比其他任何方法都更容易阅读。


0
要查找给定字符的Unicode代码点,请打开附件->系统工具->字符映射,选择一个Unicode字体,查找您需要的字符,在应用程序的左下角显示Unicode代码。

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接