我正在尝试为标题自动生成ID,以用作锚链接。因为我们不知道标题所使用的语言,所以它应该适用于任何语言,而不是创建非法字符。
所以我看维基百科看看它是如何完成这项工作的,但无法弄清楚他们究竟是如何做到的。例如,标题enum-conversion-mappings.xml
转换为<map package='android.database.sqlite' class='SQLiteDatabase' fields='OPEN_READWRITE OPEN_READONLY CREATE_IF_NECESSARY NO_LOCALIZED_COLLATORS' enum-name='DatabaseOpenFlags' is-transient='false' />
,并用作标题DOM的ID。
有没有人对如何做到这一点有任何见解?
答案 0 :(得分:0)
好吧,我想我已经明白了。维基百科使用Latin-1编码将文本表示为每个字节的十六进制代码。以下是我编写的一些Ruby代码,用于演示该过程:
# for arbitrary input `text`, force encode with Latin-1
encoded_text = text.force_encoding('iso-8859-1')
# Extract the string as plaintext, with literal hex escape character "/x"
plaintext_encoded_text = /\A"(.*)"\z/.match(encoded_text.inspect)[1]
# Replace "/x" with "." and spaces with "-"
output = plaintext_encoded_text.gsub('\x', '.').gsub(/\s/, '-')
此过程会将Ссылки
转换为.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8
,这与维基百科上显示的内容相匹配。此外,拉丁字符不受影响。