更新:显然这些是控制字符,而不是Unicode字符。
我正在尝试解析一个XML文件,该文件中有一个奇怪的字符使其无效并导致我的工具(Firefox,Nokogiri)抱怨。
以下是Firefox中的角色,以及将其复制并粘贴到Textmate时的样子(显然我在OS X上)。
crazy characters http://img.skitch.com/20090811-ghu43k5u9nhpcjmh443dpq76jp.preview.jpg我真的很想知道这些字符是什么(例如hex / dec代码),而不仅仅是神秘的图标和小灰色钻石,但我不知道如何解决这个问题。
答案 0 :(得分:4)
您的屏幕截图很小,但Firefox示例中是否包含一个包含4个十六进制字符的字形?如果是这样,那就是Unicode字符的代码编号。您还可以在Unicode code charts上搜索该钻石字形,或者只是将钻石复制到Google搜索中,并且字符名称应该靠近顶部。
但真正的问题是如何在程序中处理Unicode输入。如果您正在处理XML,则需要正确执行此操作。 Nokogiri是一个Ruby库?听到它不能自动处理Unicode,我感到很惊讶。
答案 1 :(得分:4)
我会将Firefox中的页面保存到文件中,并将其传递给hexdump -C
。在ASCII部分中查找围绕它的HTML片段,然后查找十六进制字节。最有可能的是,这些是UTF-8,因此需要一个多字节代码。
答案 2 :(得分:2)
答案 3 :(得分:1)
将其复制到emacs并启动hexl-mode。
答案 4 :(得分:0)
只需使用像xvi32这样的hexeditor打开文件。
答案 5 :(得分:0)
打开文件hexeditor并提取字符的十六进制表示。然后在http://unicode.org上查找代码,找出角色的名称。
答案 6 :(得分:0)
hexdump -c 从终端命令行将显示字符代码。
答案 7 :(得分:0)
保存文件,然后从终端使用:
od(八进制转储)
答案 8 :(得分:0)
如果您正在使用Vim,请将光标移到字符上并输入ga以在状态区域中显示十六进制
答案 9 :(得分:0)
你可以下载类String的Ruby hexdump扩展,并直接从Ruby打印出一个hexdump:
require 'hexdump'
#... whatever you do in your program
puts your_string.hexdump
输出看起来像是从shell中的hexdump -C
得到的
请参阅: