0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WEBから取得した文字列の文字化けに気づかずはまった

Last updated at Posted at 2019-04-15

ツールの仕様

VBAを使用してWEB画面から文字列を取得しEXCEL上に一覧化。
更に一覧化された文字列を使用し、別のWEB画面へインプットするツール。

どうなったのか

画面で入力エラーが発生。

「-(マイナス)」の文字が、EXCEL上では表示されているが、WEB画面へインプットした際にコード誤りがあり、WEBAPで読み取れていなかった。

また、入力エラーの内容がいまいちで、何が起きているのか分からなかったのと、EXCEL上では文字化けが発生していなかったので気づかずに嵌りました。

どのような事象か

「-(マイナス)」は環境により、割当られているコードが異なります。

文字列 IBM拡張文字 SJIS (Shift_JIS)
-(マイナス) &H2212 &HFF0D

WEBAPがIBM製品を使用しているからなのか、「-(マイナス)」がIBM拡張文字コードになっており、そのままでは、別のWEB画面へ入力できない状態になっていました。

分かってしまえば、ありがちで単純な話なのですが、
EXCEL上では普通に見えていたので、気づきませんでした。

##対応方法
vbaのソース上にIBM拡張の文字列を記載することができませんので、
ChrW関数を使用し、文字コードを指定して置換を行いました。

 対象文字列 = Replace(対象文字列, ChrW(&H2212), ChrW(&HFF0D))

|ChrW(&H2212)|IBM拡張文字-(マイナス)|
|---|:---:|:---:|
|ChrW(&HFF0D)|SJIS-(マイナス)|

対応はしたものの、理解できていないのが、
なぜ、WEBから取得した文字列がEXCEL上では表示されているのか?

IBM拡張文字のコードを利用してEXCEL上で表示しようとしても
「?」になってしまい表示することができません。

どなたか教えて頂けませんでしょうか。。。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?