问问题
2140 次
1 回答
7
这里来自unisupers脚本是一个 Perl 函数,用于转换为 Unicode 上标:
sub convert_to_superscripts (_) {
my $string = $_[0];
$string =~ tr[+−=()0123456789AaÆᴂɐɑɒBbcɕDdðEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ]
[⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱᴽᴾᵖᶲʳᴿʴʵʶˢᶳᶴᵀᵗᶵᵁᵘᶸᵙᶶᶣᵚᶭᶷᵛⱽᶹᶺʷᵂˣʸᶻᶼᶽᶾꝰᵜᵝᵞᵟᶿᵠᵡᵸჼˤⵯ];
return $string;
}
sub convert_to_subscripts (_) {
my $string = $_[0];
$string =~ tr[+−=()0123456789aeəhijklmnoprstuvxβγρφχ]
[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₔₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ];
return $string;
}
你只需要走另一条路。
另一种更简单的方法是简单地使用 k-compat 规范化,它只返回基本字符而不是它们的上/下版本。我还没有检查这些以查看它们是否都是上述函数的逆函数。您可以使用nfkd和 nfkc脚本来玩它们。
于 2012-02-29T17:27:10.727 回答