◀Unicode版開発トップへ
  • 1821 全角→半角で単体の濁点・半濁点が変換されない
    • 1822 Re: 全角→半角で単体の濁点・半濁点が変換されない
      • 1823 Re2: 全角→半角で単体の濁点・半濁点が変換されない
        • 1824 Re3: 全角→半角で単体の濁点・半濁点が変換されない
          • 1825 Re4: 全角→半角で単体の濁点・半濁点が変換されない
          • 1826 Re4: 全角→半角で単体の濁点・半濁点が変換されない
            • 1827 Re5: 全角→半角で単体の濁点・半濁点が変換されない
  • [1821] 全角→半角で単体の濁点・半濁点が変換されない syat 2012年06月05日 00:49

    ふぁんくらぶの>>378でコメントのあった、全角→半角で単体の「゛」「゜」が変換されないのを修正するパッチを投稿しました。
    PatchUnicode:3531937
    Unicode版だと、「全角カタカナ→半角カタカナ」は変換OK、「全角→半角」はNG。
    ANSI版だと、どちらもOKだったので、ANSI版に合わせます。

    さらに、ANSI版の「全角カタカナ→半角カタカナ」は、濁点が単独の場合(前にカタカナがない場合)は半角変換しませんが、Unicode版では変換してしまうという差分があります。
    そちらはまだ修正していません。
    • [1822] Re: 全角→半角で単体の濁点・半濁点が変換されない petit 2012年06月05日 09:04

      「ゐ(U+3090)」「ゑ(U+3091)」の全角→半角変換も違ってるみたいです。
      A版:「イ(U+FF72)」「エ(U+FF74)」
      U版:「ヰ(U+30F0)」「ヱ(U+30F1)」

      U版だと「ヰ(U+30F0)」「ヱ(U+30F1)」の全角→半角も変換されませんね。
      • [1823] Re2: 全角→半角で単体の濁点・半濁点が変換されない syat 2012年06月07日 07:02

        ▼ petitさん
        > 「ゐ(U+3090)」「ゑ(U+3091)」の全角→半角変換も違ってるみたいです。
        > A版:「イ(U+FF72)」「エ(U+FF74)」
        > U版:「ヰ(U+30F0)」「ヱ(U+30F1)」
        >
        > U版だと「ヰ(U+30F0)」「ヱ(U+30F1)」の全角→半角も変換されませんね。

        全角→半角が、一度全角カタカナに直してから半角かという処理なので、ヰヱが半角化できないというのが根本原因ですね。
        ANSI版は_mbctombbという関数を使っていたのが、Unicode版では独自実装になっています。

        ヮヰヱヵヶがANSI版ではワイエカケになりますが、UNICODE版では変換されません。
        Unicode版のソースを見ると、対応する半角文字がないので除外した、というようなコメントがありますが、とりあえずANSI版の動作に合わせましょうか。
        • [1824] Re3: 全角→半角で単体の濁点・半濁点が変換されない 神楽 2012年06月16日 13:41

          ▼ syatさん
          > ヮヰヱヵヶがANSI版ではワイエカケになりますが、UNICODE版では変換されません。
          > Unicode版のソースを見ると、対応する半角文字がないので除外した、というようなコメントがありますが、とりあえずANSI版の動作に合わせましょうか。

          全角小文字のヵヶが半角大文字のカケになるのをバグとみなしている人もいます。
          http://sakura.qp.land.to/?BugReport%2F81

          ですので、ANS版1.5.15.0互換の動作にするというオプション化
          の方が良いのではないでしょうか?
          http://sakura.qp.land.to/?FAQ%2F29

          個人的意見としては全角カナと半角カナの変換は1対1対応であるべきと思いますので、
          ヮヰヱヵヶは変換されない仕様が良いです。
          • [1825] Re4: 全角→半角で単体の濁点・半濁点が変換されない もか 2012年06月16日 16:04

            Unicodeには合成用の濁点もあるので、半角→全角との双方向変換はあきらめて、可能な限り変換するのがいいと思います。
            ただのオプション化はマクロの互換性が下がるので、できればそれも考慮してほしいです。
            変換は色々好みがあるようなので、内臓のものにはあまり手を付けないでマクロを提供したほうがいいんじゃないかな。
          • [1826] Re4: 全角→半角で単体の濁点・半濁点が変換されない syat 2012年06月16日 16:38

            ▼ 神楽さん
            > ですので、ANS版1.5.15.0互換の動作にするというオプション化
            > の方が良いのではないでしょうか?
            > http://sakura.qp.land.to/?FAQ%2F29

            ご指摘ありがとうございます。昔から議論されてきている話題のようですね。
            >>unicode:1412によるとUNICODE版はrev1849でヵヶヮを半角化しない修正が入っているようです(日付から見てBugReport/81とは関係なさそう)。

            1.5.14.0をダウンロードして調査してみました。(とりあえず記号含まないカナのみ)
            https://docs.google.com/spreadsheet/pub?key=0ApwYIi1qasEzdE9jYzF5MXR2VFNjeW9GZ2pNSE
            ZleEE&output=html
            少なくとも1.5.14.0以降ではANSI版は「ヮヰヱヵヶ」を半角変換できたので、UNICODE版から変わったことになりますが、仕様変更であればヘルプなどにもしっかり書く必要があります。
            オプション化するのは全然構いませんが、デフォルト動作はなるべく変更しない方がよいのでは。
            • [1827] Re5: 全角→半角で単体の濁点・半濁点が変換されない 神楽 2012年06月16日 23:23

              ▼ もかさん
              > Unicodeには合成用の濁点もあるので、半角→全角との双方向変換はあきらめて、可能な限り変換するのがいいと思います。
              > ただのオプション化はマクロの互換性が下がるので、できればそれも考慮してほしいです。
              > 変換は色々好みがあるようなので、内臓のものにはあまり手を付けないでマクロを提供したほうがいいんじゃないかな。

              確かに結合文字は全角→半角変換の対象になって欲しいので、
              1対1対応であるべきという前言は撤回します。


              ▼ syatさん
              > 1.5.14.0をダウンロードして調査してみました。(とりあえず記号含まないカナのみ)
              > https://docs.google.com/spreadsheet/pub?key=0ApwYIi1qasEzdE9jYzF5MXR2VFNjeW9GZ2pNSE
              > ZleEE&output=html
              > 少なくとも1.5.14.0以降ではANSI版は「ヮヰヱヵヶ」を半角変換できたので、UNICODE版から変わったことになりますが、仕様変更であればヘルプなどにもしっかり書く必要があります。
              > オプション化するのは全然構いませんが、デフォルト動作はなるべく変更しない方がよいのでは。

              もかさんのご意見もありますし、デフォルト動作をANSI版相当に戻すことに異論ありません。
              正直に申し上げますと、サクラエディタ利用歴は長いですが、
              あまり変換メニューは利用していません(IMEの逆変換で済ませることが多いです)。

              ですので、Unicode版2.0.0.0~2.0.4.0の動作の方をオプション化という方が良さそうですね
              (個人的にはオプション化せずに変換動作を完全にANSI版時代に戻して頂いても構いません)。