
No.3ベストアンサー
- 回答日時:
(右)シングルクオートと全角のアポストロフィーは同じものです。
その文字コードはUnicodeで8217(十進)、Shift_JISで8166(16進)です。
フォントを変えるか、ASCII領域にある左右の区別のないシングルクオート「'」を使ってはいかがでしょう。
データベースに Unicode 8217 (十進)の右シングルクオートが含まれていた場合に、それが正しい値で処理されていないようです。8166というのは、あれこれ調べているうちに目撃したShift_JISの16進数コードのようでした。つまり、プログラムコード上は正しく処理されていて、その先の .exe に渡した内部であやまって扱われているのではないかと思います。
.exe はずいぶん前に私がやっつけ感満載でCで書いたので、内容を見直すのは難しそうです。.exe にも文字コードとかあるんですかね。コンパイル前に書いた main.c は Shift_JIS になっていました。
No.2
- 回答日時:
>VBAで文字列を処理するプログラムを書いていますが
というのは、Excelの話ですか?
他にWordなのか、PowerPoint なのかとか、いろいろあります。
>シングルクオート(8217)が使えず
たぶん、おっしゃっている話は、左シングルクオートと右シングルクオートのセットにならないというような話ではないかと思います。
ただ、一応、プログラミングの話だと思いますが、コードの方はどうなっているのかよく分かりません。もしExcelでセルに入力する場合は、最初に、文字列を入れようとして、全角のsingle quote を使うと、半角に変わって、prefix character として、書式制御文字になってしまいます。ですから、最初のひとつは、半角single quote を捨て文字として使わなくてはなりません。
いろいろ調べた結果、Cで書いた.exeの中で 8127 の文字が2文字として計算されているところに誤りがあるような気がしています。
strlen で長さを取っているのですが、これを改める必要がありそうです。どうすれば良いのかはこれから調べます。
No.1
- 回答日時:
シフトJISの8166が、右シングルクォート「’」なので、おそらく8217もシフトJISコードの意図で書いてるのでしょうが、シフトJISにそういうコードは無いです。
タイプミスでしょうか?また、シングルクォートじゃないシングルクォートというのも、よく分かりません。どの文字のことでしょうか?ややこしいので敢えて書きませんでしたが、しっかり書くべきでしたね。
実際のプログラムはこういう流れです。
.vbs ファイルがメインのコードで、このコードが .mdb ファイルからテキストデータを吸い出します。吸い出した後、簡単な .exe にテキストデータを渡して、文字コードを基にしてハッシュ値を生成して返します。この動作は、ある既成のソフトウェアの動作を模倣したものです。
このとき、.mdb に右シングルクオートが含まれていると、正しいハッシュ値が得られないという問題があって困っていました。つまり、既成のソフトウェアではシングルクオートのみを渡した場合は8217として扱われるのに、自作のコードでは異なる値となっていたのです。
で、上記のプロセスがやや複雑なので、テスト環境としてエクセルのvbaとテキストファイル1枚のtest.vbsを使って実験していたのです(結果は同様に失敗しています)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
IEからEdgeへの移行に伴うIMEの...
-
COBOLでの全角文字の判定をした...
-
COBOL・全角判定
-
VBA 文字に半角が含まれて...
-
メモ帳の段落の揃え方
-
全角スペースを削除するには?
-
エクセルにMicrosoft Barcode C...
-
Visual Studioで ユニコード "...
-
ACCESS:半角、全角空白スペース...
-
ACCESS VBA でのバイナリデー...
-
半角/全角文字混在データの分...
-
全角英数字の必要性が理解できない
-
エクセルでの”々”の扱い
-
右側の半角スペースのみ取り除く
-
Excel2010以降でVBA変数名に全...
-
[VBScript]バイト長の判定
-
Word2007の全角文字、全角スペ...
-
全角/半角キーをSendkeys関数で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
全角英数字の必要性が理解できない
-
COBOL・全角判定
-
word差し込み印刷 半角カタカ...
-
VB.net、テキストボックス入力...
-
char型全角数字から、int型半角...
-
プログラミングでは、半角括弧...
-
メモ帳の段落の揃え方
-
エクセルにMicrosoft Barcode C...
-
エクセルの検索が正しくできな...
-
封筒の宛先で縦書きの書き方
-
エクセルでの”々”の扱い
-
全角/半角キーをSendkeys関数で...
-
.NET3.5におけるキーボードの「...
-
VBで、String型のデータが、...
-
Accessで日付や数値を全角で表...
-
明細書の英数字の全角・半角に...
おすすめ情報
どうやら、文字コード 8166 のクオート(アポストロフィ?)になっているようです