どうせ和布蕪るなら、続き (長促音まみれ、終わらないファイナルは終わらない)

明けない夜はないがイベントホライゾンにおいては現在が永遠に引き伸ばされる。

最初からちゃんとしろ、つー話なんだけれど、「ひらがなとはなんぞや」「かたかなとはなんぞや」に無頓着にやってたんで、ちゃんとした、って話。これ (これ)の話だよ念のため。

Python での場合の「unicodedata」には期待するものがないので自力でやってたが、かな~り間違っておった。

  • 「長音・促音・拗音全て含めひらがな全て」をぜーんぶ、の範囲は「[-んー]」である。
  • 「長音・促音・拗音含まないひらがな」の範囲は「[あいうえおか-つ-もやゆよら-ん]」である。
  • 「長音・促音含まないひらがな」の範囲は「[あいうえおか-つ-ん]」である。
  • 「長音・拗音含まないひらがな」の範囲は「[あいうえおか-もやゆよら-ん]」である。

unicode が当然になってからちゃんと調べたことがなかった…ことを言い訳にしない、しないよ…。どっちにしろ JIS コードでどうだったかさえ覚えてなかったんだから。ともあれ、ここで列挙した内容はつまりはコード順がこうなっているということ:

  • 拗音・促音は、対応する文字の (「ord('ぁ') < ord('あ')」」)
  • 濁音は、対応する文字の (「ord('か') < ord('が')」)
  • 長音は、カタカナよりも後

なわけで当然「ひらがな to カタカナ」の自前処理も間違っていて:

1 #ごめん#_khmap = {
2 #まちが#    chr(i + ord("あ")): chr(i + ord("ア"))
3 #えてた#    for i in range((ord("ん") - ord("あ")) + 1)}
4 _khmap = {
5     chr(i + ord("ぁ")): chr(i + ord("ァ"))
6     for i in range((ord("ん") - ord("ぁ")) + 1)}
7 def _h2k(s):
8     return "".join(
9         [_khmap.get(c, c) for c in s])

にしてももちっと標準にないもんかいね?


2019-10-16追記:
だぅあ。だーうと。

「るい・ヴぃとん」…。「ヴ」が抜けてるのよ。これは「ァ-ン」に入らない。うむぅ、ほかにあったりしないかな…。



Related Posts