康煕部首に注意

さっき、mastodon-japan.netのアカウントで投稿する際、#性と生殖に関する健康と権利 というハッシュタグを付けた。しかし、#性と で切れてしまった。「と」と「生」の間に特殊コードが入っているかと調べたが入っていない。ただ、テキストエディタにコピーした時に「生」の文字だけ小さかった。この文字が変だった。エンコードしたら次のようなコードだった。

数値参照(10進数) :⽣
数値参照(16進数):�
JavaScript String:"\u2f63"
Unicode:U+2F63

どうやら、単独の文字ではなく部首らしい。

"康煕部首(こうきぶしゅ、英語: Kangxi Radicals)は、Unicodeの106個目のブロック。康熙字典214部首が収録されている。

このブロックの文字は、通常の漢字とは異なり、部首であることを示す場合にのみ使用できる。スキャンしたりPDFからWord変換したりした文書で混ざる場合がある。
"
康煕部首 - Wikipedia
https://ja.wikipedia.org/wiki/%E5%BA%B7%E7%85%95%E9%83%A8%E9%A6%96

今回は問題が起こったことや、テキストエディタにコピーして明らかな違いがあったので見つけることができたが、ネット上でコピペすると文字の大きさが変わるなどが無くて分からないことがある。気をつけないといけない。

未分類
管理人のマストドンアカウントへのリンクなど

コメント

  1. ishii ishii より:

    康煕部首を検出して修正案を表示するコードを #Gemini に作ってもらった。

    康煕部首検出と修正案 (Unicode表示付き)
    https://hitorinezumi.cloudfree.jp/koukibushu.html

    康煕部首を検出して修正案を表示するコード
    https://html-memo-hitorinezumi.blogspot.com/2025/04/Kangxi-radical-detection.html

  2. ishii ishii より:

    「CJK 部首補助」というのもあるらしい。

    "Unicode には,部首関係の文字が以下の領域 (ブロック) にも登録されています.本ページは,それらの文字の一覧です.

    コード範囲 ブロック名 (グループ名)
    U+2E80 - U+2EFF CJK Radicals Supplemen (CJK 部首補助)
    U+2F00 - U+2FDF Kangxi Radicals (康熙部首)
    "
    [ 康煕部首と CJK 部首補助の文字一覧 ] - Mr.XRAY
    http://mrxray.on.coocan.jp/Delphi/Others/Unicode_Busyu.htm

    • ishii ishii より:

      変換してくれるサイトは既にあった。

      康煕部首こうきぶしゅ PDF文字化け正常化 CJK部首補助も対応
      https://ao-system.net/kangxiradical/

      • ishii ishii より:

        CJK部首補助の方を置換するにはサロゲートペアを使わざるを得ないようだが、どうするか…。サロゲートペアが含まれていると、いろいろと問題が起こりそうなんだよな…。

        サロゲートペアとは?意味を分かりやすく解説 - IT用語辞典 e-Words
        https://e-words.jp/w/%E3%82%B5%E3%83%AD%E3%82%B2%E3%83%BC%E3%83%88%E3%83%9A%E3%82%A2.html

        • ishii ishii より:

          CJK部首補助も検出できるように検出する文字コードを追加し、
          サロゲートペアを検出できるコードをGeminiに作ってもらい、

          サロゲートペアの検出
          https://hitorinezumi.cloudfree.jp/surrogatepair.html

          一緒にした。

          康煕部首、CJK部首補助、サロゲートペアの検出
          https://hitorinezumi.cloudfree.jp/SpecialCharacterDetection.html

          コードはこちら。

          康煕部首、CJK部首補助、サロゲートペアの検出
          https://html-memo-hitorinezumi.blogspot.com/2025/04/SpecialCharacterDetection.html

          • ishii ishii より:

            "2014/12/01"
            “𠮟る” と “叱る” | 2014年 | ブログ | hydroculのメモ
            https://hydrocul.github.io/wiki/blog/2014/1201-shikaru.html

          • ishii ishii より:

            ブックマークレットを作った。
            コードはこちら。

            康煕部首、CJK部首補助、サロゲートペアの検出ブックマークレット
            https://html-memo-hitorinezumi.blogspot.com/2025/05/SpecialCharacterDetection-bookmarklet.html

          • ishii ishii より:

            サロゲートペアではないが、サロゲートペアの検出コードで検出される。ただし、文字が表示されない。

            "異体字セレクタ

            葛 (下がム)の異体字として 葛󠄀 (下がヒ)があり、カツシカ区は前者を、カツラギ市は後者を使うらしい。

            ところがこの二つは 𠮟 と 𠮟 のように別の文字コードを振るわけではなく、どちらも同じ文字であり、書き方のバリエーションが違うという扱いになっている。

            そこで、基本となる文字コードを定義し、そこに対してバリエーションがあるものはその番号を組み合わせるという考え方が 異体字セレクタ だ。

            葛 の文字コードは 0x845B であり、異体字の 1 番目である 葛󠄀 には、後ろに 0xE0101 をつける。
            "
            JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io
            https://blog.jxck.io/entries/2017-03-02/unicode-in-javascript.html

            • ishii ishii より:

              "異体字セレクタの使用例
              "
              異体字セレクタ - Wikipedia
              https://ja.wikipedia.org/wiki/%E7%95%B0%E4%BD%93%E5%AD%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF#%E7%95%B0%E4%BD%93%E5%AD%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8B

              • ishii ishii より:

                葛󠄀、飴󠄀、茨󠄀などを検出するが検出された文字が表示されないので、コードの修正が必要。

                康煕部首、CJK部首補助、サロゲートペアの検出
                https://hitorinezumi.cloudfree.jp/SpecialCharacterDetection.html

                • ishii ishii より:

                  「📩📩🍚🍲」はマストドンで4文字。
                  「葛󠄀飴󠄀茨󠄀」はマストドンで6文字。
                  「𠮟」はマストドンで1文字。

                • ishii ishii より:

                  葛󠄀のJavaScript Stringは"\u845b\udb40\udd00"
                  飴󠄀のJavaScript Stringは"\u98f4\udb40\udd00"
                  茨󠄀のJavaScript Stringは"\u8328\udb40\udd00"
                  \udb40がif (0xD800 <= charCode && charCode <= 0xDBFF)に含まれるため、 サロゲートペアとして検出された。 そして、ユニコードの結合文字として"U+E0100"と表示され、 上位のU+DB40と下位のU+DD00が表示された。 だから、検出されたのは葛󠄀、飴󠄀、茨󠄀などではなく、元のコードの次にある\udb40。

  3. ishii ishii より:

    私の記事内に康煕部首、CJK部首補助、サロゲートペアが含まれていないか、検索して確認したいのだけど、方法が分からない。「Search Regex」はインストールしてあるのだけど…。

    • ishii ishii より:

      絵文字以外のサロゲートペアを見つける検索文字列(上記「𠮟」が見つかった):[𠀋-𪚲]
      康煕部首、CJK部首補助の場合(このコメントが見つかるはず):[⺀-⿕]

      サロゲートペア - 闘うITエンジニアの覚え書き
      https://www.magata.net/memo/index.php?%A5%B5%A5%ED%A5%B2%A1%BC%A5%C8%A5%DA%A5%A2

      • ishii ishii より:

        ユニコードが5桁の絵文字の検索:[🀄-🪕]

        "UnicodeのEmojiの一覧(ユニコードのえもじのいちらん)では、UnicodeがEmoji(絵文字)として定義している文字の一覧を記載する。
        "
        UnicodeのEmojiの一覧 - Wikipedia
        https://ja.wikipedia.org/wiki/Unicode%E3%81%AEEmoji%E3%81%AE%E4%B8%80%E8%A6%A7

タイトルとURLをコピーしました