• ベストアンサー

エスケープ文字を登録するには?

VB.NetよりMySQLのDBへ登録処理を行おうとしています。 画面側で全角文字と半角エンマークを入力された時の 登録結果は、半角エンマークを入れたことにより文字化け が発生してしまいます。 全角文字のみの場合は文字化けもおきません。 どのようにしたら文字化けをおこさずに、半角エンマーク (エスケープ文字)を登録することができるのでしょうか?

  • ojama
  • お礼率100% (1/1)
  • MySQL
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • tomy06
  • ベストアンサー率25% (58/224)
回答No.1

VB.Netは使った事ないですが,UNIX系では'\\'で表現できたような気がします

ojama
質問者

お礼

どうやら、Paramaterを使ったinsert文だったためにこの問題が出てしまったようです。 "\\"を考慮し、直接SQL文を作成するように変更したら上手くいきました。 ありがとうございました!

ojama
質問者

補足

実は私もそう思い、'\'を'\\'に置換してから登録してみたのですが、結果は同じく文字化けが発生してしまいました。 直接'\\'を入力した場合も全角文字が文字化けしてしまいました。 ですが、Accessなどからの直接入力の場合は'\'を入力しても文字化けが発生しません・・・

関連するQ&A

  • PHPで「®」や特殊文字のエスケープ

    PHPでフォームから送られてきたデータを、MySQLに登録する際に、 「®」や特殊文字をエスケープして登録したいのですが、 どのようにしたらいいのでしょうか。 「<」や「&」などはhtmlspecialcharsでエスケープできているのですが、 「®」や特殊文字(~やm2など)がエスケープできず、 文字化けを起こして困っています。

    • ベストアンサー
    • PHP
  • DBの文字コード切り替え

    MySQL 5.6 なのですが・・・・ DBの文字コードはDB作成後にデータを登録した後に、途中で文字コードを変更した場合、DBに登録済みの全角文字はどうなりますか? 文字化けする場合、変換ツールのようなものはあるのでしょうか? また文字コードの変更は ini ファイルを変更してMySQLを再起動するだけでいいのでしょうか?

    • ベストアンサー
    • MySQL
  • 文字変換について

    PHP+MYSQLで会員制のサイトを作っています。 文字の扱いについて教えてください。 掲示板等で、入力された文字列の処理についてですが、 入力禁止文字や、半角カナ、全角英文字等の定番的な処理方法はあるのでしょうか? (半角カナは全角に変換すべきとか、) この関数を使うといいよ、とかいうのがあると嬉しいです。 なお、文字コードはeuc-jpです。

    • 締切済み
    • PHP
  • stringaddslashes 半角¥が消える

    form(POST)で変数をSQL文のinsertを用いてDBにいれていました。 ある日、アポストロフィ(シングルクォーテーション)の入っている変数があった場合、insert自体がうまくいっておらず、レコードが作られていないことに気づきました。 mysql_connect 以降 insert 以前に、 「mysql_real_escape_stringaddslashes」をいれることで、シングルクォーテーションも 問題なくinsertされるようになりましたが、半角エンマーク(バックスラッシュ?)を入れた場合にその文字が消えてDBに格納されます。 エスケープの記号とみなされてしまいます。 たとえば商品の値段として「\100」と書こうとしても、「100」になってしまいます。 全角でも閲覧するには支障がないので、 str_replace('\','¥',$str); のように修正しようとしてもうまくいきませんでした。 エスケープにエスケープしようとして、 str_replace('\','\\',$str); のように修正しようとしてもうまくいきませんでした。 最悪addslashesに変えないとダメかと思っていますが、 どうもaddslashesのほうはセキュリティ上、前者に劣るとも聞きましたので、このままなんとか「mysql_real_escape_stringaddslashes」で行きたいのですが。 うまい方法があるでしょうか?

    • ベストアンサー
    • PHP
  • 文字の判定

     こんばんわ。早速ですが、VBにおいて入力、又は取り込んできたデータの文字(1文字)が全角文字(漢字・ひらがな・全角スペース等)か半角文字(半角カタカナ・半角スペース等)かをみわける関数ってあるのでしょうか?

  • HTMLエスケープ処理とデーターベース

    初歩的な事で申し訳ありませんがご教授下さい。 フォームから受け取った文字列をデータベースに格納し、必要に応じて出力するような処理でのHTMLエスケープについて質問です。 (前提条件として、HTMLタグは使用をさせない。フォームに入力する文字列には、< や >を使う必要性はほとんどないものとします) HTMLエスケープ処理は、どのタイミングで行うのが普通でしょうか? 1.JavaScliptで特定文字 < や > を入力させない。 2.サーバーサイドで特定文字 < や > を入力させない。 3.DBに格納する前にエスケープして、エスケープ処理後の文字列をDBに格納する。 4.DBにはそのまま格納し、出力のさいにエスケープ処理を行う。 5.どこでもかまわない。 6.その他 今まで私はあまり意識する事なく(4)を選択していたのですが、最近他の人の作ったプログラムを見る機会が増えて、その違いにちょっと気になりました。 正解はないのかも知れませんが、一般的な方法と、そのメリット、デメリット等、教えて頂けると助かります。

    • ベストアンサー
    • PHP
  • MySQLで半角濁音文字の検索

    宜しくお願い致します。 MySQLのselect検索時にフリーワード検索をしています。 DB上には半角・全角文字が混在しており、検索窓に入力した文字の全角・半角を区別せずに検索しております。 文字コードがUTF-8なので、SQL文のwhere区で「collate utf8_unicode_ci」を指定して全角・半角の区別無しで検索しております。 しかし、半角濁音文字、たとえば「ベルト」や「パワー」等の文字列がDB上に半角カタカナで入っている場合に検索窓に全角で入力しても検索できません。 原因はDB上では半角の「ヘ」と「濁音記号」として認識しており、検索窓に入れた文字列は、そのまま「ベ」という1文字として認識しているので検索できないと思われます。 この問題を解決する方法が無くて悩んでおります。 どなたかご教授の程、宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • addslashesによるエスケープ

    フォームからのデータをデータベースに登録する際、addslashesを使用して登録データをエスケープしています。 SJISでデータを処理しているのですが、addslashesでエスケープする際に最後がエスケープされるデータの時困っています。 例えば登録したいデータが「サンプル表」などの時、addslashesすると INSERT INTO ・・・・, 'サンプル表\', ・・・ とINSERT文ができるのですが、これだとエラーが出ます。 こういう場合、皆さんはどのような処理をされているのでしょうか? 今は、エスケープする必要のあるデータ処理には INSERT INTO ・・・・, 'サンプル表\ ', ・・・ のように半角スペースを入れて、データを抽出した際、末尾の半角スペースを取り除いています。 他に思いつくのは、登録するデータをエスケープした際に末尾が「\」かどうか調べて、「\」の場合半角スペースなどを挿入するという方法などです。 もっといい処理があれば、ご教授いただければと思います。 よろしくお願いいたします。 長文ですみません。

    • ベストアンサー
    • PHP
  • 入力禁止文字の設定方法について・・・VB?SQL?

    初歩的な質問でしたらすみません。。。 VB6でSQLServer2000のDBを操作しています。 入力フォームの「名称」欄に「'」「,」半角のアポストロフィやカンマの入力をすると、 SQLのテーブルへ書き込み時にエラーとなってしまいます。 「名称」のため、半角の「'」「,」は禁止にして、全角の「’」「,」は入力可能にしたいです。全角半角の判別可能なのでしょうか? フォームで[登録]ボタンを押した時に「名称」欄に「'」「,」が含まれているかのチェックをしたいのですが、 「'」「,」文字をどの様に記述してチェックをすればよろしいのでしょうか。 どなたかご存知の方ご教授いただけたらと思い質問させていただきました。 どうかよろしくお願いいたしますm(_ _)m

  • ATOKの単語登録を半角だけ又は全角だけにしたい

    ATOKの単語登録を半角だけ又は全角だけにしたい Windows XPでATOK 2005を使っていますが、単語登録をすると、例えば次のように、半角文字と全角文字と両方登録されます。 登録時にキー入力した文字:2010年 (※数字の部分を半角で入力して登録しました) 実際に登録された文字:2010年、2010年 (※数字の部分が半角のものと全角のものと両方登録されました) 単語登録の時に全角で入力したものは全角だけで、半角で入力したものは半角だけで登録したい(つまり、両方は登録したくない)のですが、そのようにするにはどうしたらいいでしょうか。