¥などの特殊文字を重ねる処理について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 ¥などの特殊文字を重ねる処理について

  • このトピックには2件の返信、2人の参加者があり、最後にkoniにより5時間、 36分前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #7744
    koni
    参加者

    いつもお世話になっております。

    MZでWindowsエクスプローラーを表示する処理があり、MZ上でフォルダパスを設定しております。
    しかし、フォルダパスをMySQLに保存すると、¥(円マーク)が特殊文字のために消えてしまいます。(「C:\Users\koni」と設定すると「C:Userskoni」で保存される。)

    円マークを2個重ねれば、これを回避できるとのことですので、MySQL保存前に「自動的に円マークの数に応じて円マークを2個重ねる処理」を入れたいのですが、その方法をご教授いただきたいです。

    よろしくお願いいたします。

    #7745
    MZPlatformユーザー会
    キーマスター

    ご連絡ありがとうございます。
    確かにMySQLでは「\」が特殊文字のため、データ追加時にエスケープ用にもう一つ「\」を重ねないと消えてしまいます。

    これを回避するには、
    ➀[文字列格納変数]を追加し、パスを一旦[文字列格納変数]に設定します。
    ➁メソッド「指定文字列と一致するすべての文字列を置換する(String,String)」
    引数0:¥(実際は半角)、引数1:¥¥(実際は半角)で文字列内の全ての単独円マークを2つの円マークに置換することができます。
    ➂[文字列格納変数]から文字列を取得して、MySQLへのinsert用のデータとします。

    メソッド「指定文字列と一致する最初の文字列を置換する(String,String)」では文字列の中に出現する1つ目の文字列しか置き換えられませんが、「すべての・・・」を方を使うと、出現する全部の文字列が置換されます。

    上記お試しいただき、ご不明な点やご要望がございましたら、どうぞ再度ご連絡ください。
    よろしくお願い申し上げます。

    #7746
    koni
    参加者

    ご回答ありがとうございます。
    この方法でMySQLに正しくパスを保存することができました。

    余談ですが、今回ご回答をいただくまで、文字列の置換に使用する「指定文字列と一致する…」と「正規表現に適合する…」を混同しておりました。
    「正規表現に適合する…」を使用すると、特殊文字を認識する文字列となるとのことで理解いたしました。

    1点確認したいのですが、この2つの使い分けはどのようにすればよいのでしょうか。
    今までの開発では問題ありませんでしたが、知識として知っておきたいため、ご教授お願いいたします。
    よろしくお願いいたします。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。