10 返信 最新の回答 日時: Apr 18, 2016 6:45 PM ユーザー:まるみ

    PMingLiU(新細明體)の挙動がおかしい

    まるみ

      FMP13

      win10 です。

      PMingLiU-ExtB(新細明體)で表示される漢字を扱うと、文字数がおかしくなったり、その文字が消えたりします。

      例えば、「  U28D67

      u28d67 (  ) - GlyphWiki

       

      MSwordでは「PMingLiU-ExtB」で表示される漢字ですが、MSwordからそのままファイルメーカーにコピペできません。

      utf-8に指定したテキストファイルからだとコピペできるのですが、挙動がおかしくなります。

      Length( )

      Get( アクティブ選択サイズ )

      などで2文字扱いになります。

      Length( )の場合、2文字扱いにならない時もあります。

       

      Get( アクティブ選択位置 )

      Get( アクティブ選択サイズ )

      を使ったスクリプトが誤作動して困っています。

      PMingLiU-ExtBを正しく1文字で扱えるようにしたいです。

        • 2. Re: PMingLiU(新細明體)の挙動がおかしい
          まるみ

          user14047さん、回答ありがとうございます

           

          教えてもらったナレッジベースで例示されている「㓸」は、調べてみたら、ちゃんと1文字扱いになります。

          MSwordではSimSunフォントになっています。

          ここで問題としている漢字はおそらくすべて「PMingLiU-ExtB」(CJK 統合漢字の拡張 B 文字?)で表示されるものだと思われます。

          すでに投稿した漢字(門+卨)が当方のブラウザでは見えていません……。

           

          「CJK 統合漢字の拡張 A 文字セットに属する文字を使用しないことをお勧めします」とありますが、これでは問題が解決できないのですが。

          これは、ファイルメーカーだけの問題なのか、他のデータベースでも同じなのか、また、改善される見込みはあるのか、この辺の情報をくださいませんか。

          • 3. Re: PMingLiU(新細明體)の挙動がおかしい
            user14047

            FileMaker Pro 12 の段階で問題を認識しつつ今に至っているので、問題の根が深そうですね。

            不具合なのか、統合漢字の挙動が違うのが仕様なのか分かりませんが、現段階で Get ( アクティブ選択サイズ ) で想定とは違う値が返ってくる前提で他の手法を考える必要がありそうな気がします。

            具体的な解決案はだせないですが...

            • 4. Re: PMingLiU(新細明體)の挙動がおかしい
              user19752

              FM12v4で問題の文字をナレッジベースからコピペして実験してみましたが、どっちでも問題なく検索できました。

              「白」に見える文字は文字コード12137(2F69)で、このエリアは文字ではなく部首ですね。

              もう一つの文字は13560(34F8)で、こっちが拡張Aです。

              索引を英語にしても関係ないみたいですし、よくわかりません。

               

              Length(U28D67の文字)は1文字で認識されています。Code()では2文字分の10桁ありますが。


              コピペの場合は、相手のソフトの問題もあり得ます。この文字はFMからメモ帳にはペーストできるのにワードパッドはダメでした。

              • 5. Re: PMingLiU(新細明體)の挙動がおかしい
                まるみ

                user19752さん

                コメントありがとうございます。

                 

                u28d67の文字ですが、文字をいくつか入れると Length() の値がおかしくなりませんか?

                ▣▣▣… のようにすると。またはあい▣えお…のようにすると。

                当方でも値が正常だったり、異常だったりします。

                 

                Get ( アクティブ選択位置 )

                Get ( アクティブ選択サイズ ) では、決まって2文字になります。

                よって、実際に値を取得しようとすると、ずれます。

                 

                コピペの場合は、相手のソフトの問題もあり得ます。この文字はFMからメモ帳にはペーストできるのにワードパッドはダメでした。

                 

                MSwordでもコピペができません。文字コードのせいだと思うのですが。わたしはutf-8に設定した.txtファイルに変換してからコピペしてます。またブラウザを介してコピペすると正常にコピペできたりします。

                • 6. Re: PMingLiU(新細明體)の挙動がおかしい
                  user19752

                  いくつかやってみた範囲では正常でした。

                  おかしいといえば、マウスでクリックすると文字の真ん中にカーソルが入れる(つまりどこかしらに2文字という認識がある)。そのままDELで半分だけ削除できてしまいました。そのあとは異常な文字コードなので表示もおかしくなりますね。

                  フィールドに入った後でカーソルキーで動かすと1文字と認識してて、そこへは移動しません。

                   

                  FM13は最新にしてますか。

                  あと、Win10というのでそっちの問題もあるかもしれません。

                  ブラウザ上で入力した「  」がこのサイトで表示されないのは、FMとは殆ど関係ありません。このサイトはFMで運用されてないので。

                  • 7. Re: PMingLiU(新細明體)の挙動がおかしい
                    user19752

                    Get関数の方はこちらでも再現できました。

                    マウスで文字の半分単位で選択できてしまうので、それには対応してるというか

                    • 8. Re: PMingLiU(新細明體)の挙動がおかしい
                      まるみ

                      Length( ) の異常ですが、

                       

                      u28d67の文字を

                      ▣▣ とならべて その間に▣を插入すると、文字数が狂います。

                      ▣   ▣

                          ↑

                       ▣

                       

                      再現できますか? どうでしょう?

                      • 9. Re: PMingLiU(新細明體)の挙動がおかしい
                        user19752

                        それは再現できませんでした。

                         

                        1文字だけの状態で、間でなく「文字の中に」挿入すると、

                        Length() 3

                        Code() 56679566795539555395

                        で、フィールドにカーソルが入っている間は、文字の両側に半角スペースがあるように見えるのが、レコード確定すると「5667」という表示になります

                        • 10. Re: PMingLiU(新細明體)の挙動がおかしい
                          まるみ

                          user19752さん

                          ありがとうございます。

                          わたしの方では、Length( )の異常は上記の方法で必ず再現できます。windows10の環境で問題が発生しているのでしょうか。Get ( )では1文字が2文字扱いとなる現象は、再現できたとのことですが、ソフトウエアの問題もあるのでしょうか。

                          あと、「文字の中にカーソルが入れられる」というのは、こっちでは再現できないです。

                           

                          user14047さん

                          >現段階で Get ( アクティブ選択サイズ ) で想定とは違う値が返ってくる前提で他の手法を考える必要がありそうな気がします。

                          Get (  ) 関数を使う前に、substitute( ) で問題を引き起こす漢字を別の字(▣とか)に置き換えて見ようかと思います。

                          これをすると、狂っていたLength( ) の値も、正常に戻るみたいです。

                           

                          なんにせよ、Filemaker社の方、この問題の改善、ぜひお願い致します!