- - PR -
C4819が出現してコンパイルできない
«前のページへ
1|2|3|4|5
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-05 00:52
こんな(http://www.kijineko.co.jp/tech/boost-memo/strange-charcter.html)原因ではないかと思われ。 | ||||
|
投稿日時: 2007-11-05 10:07
はい、まさにこれだと思います。
原因がはっきりとわかりありがとうございます。 これがなぜ英語版OS+英語版VSでは出なくなるのかはわかりませんが、、、 [ メッセージ編集済み 編集者: butthead 編集日時 2007-11-05 10:07 ] | ||||
|
投稿日時: 2007-11-05 22:16
IMEの場合:
「IMEパッド - 文字一覧」を表示します。 ウインドウを、縦に伸ばします。 「シフト JIS」と書いてあるボタンをクリックして、「Unicode」にします。 「基本ラテン」を表示します。左上が、「 !”#」のようになると思います。 その段から下に13段目に、「ストローク付きo小文字」があります。 それが見える状態で、「Unicode」とかかれたボタンをクリックします。 その場所にあった文字が消えるのが確認できます。 ATOKの場合: 「文字パレット」を表示します。 「和文コード表」タブを表示します。 体型を、「シフト JIS」、見出しを「半角」にします。 00F8 に割り当てられた文字がないことを確認します。 「欧文コード表」タブを表示します。 F8 に、文字が割り当てられていることを確認します。 Shift_JIS で 0xF8 は、リーディングバイトではありません。よって、Shift_JIS 環境では私用されるはずのない 0xF8 と言う文字コードが使われていることから、C4819 の警告が出ると考えられます。もし、リーディングバイトの文字が使われていると、日本語に化けるので、Shift_JIS で定義されていない範囲の文字が使われたときのみ、と言えるでしょう。 なお、VS.NET 2003 には、C4819 は定義されていないようです。付属の MSDN ライブラリで、このエラーコードが検索できませんでした。なので、VS2005 以降でのみ発生する可能性があると言えそうです。 | ||||
|
投稿日時: 2007-11-06 07:31
IMEで文字コードを変更することができたんですね。
Jitta様有用なご回答、ありがとうございました。m(__)m | ||||
|
投稿日時: 2007-11-07 21:30
なんとなく、私が意図することが伝わっていないような、重大な誤解をされているような気がします。 でも、「ここを、こう誤解している」と、はっきりさせることができません。 しかし、これを見た他の人が誤解しないためにも、書いておきます。 IME で文字コードを変更することはできません。 (ここで「文字コード」は、「コード体系」のことを指していると思われます。) IME パッドで「Shift_JIS」とか「Unicode」とかが切り替わるのは、これから入力する文字コードの体系です。Shift_JIS で書かれたファイルに Unicode で入力すると、その文字は化ける可能性があります。 2007-11-05 22:16 の投稿は、2007-11-04 01:33 の未記入さん「英語なのに日本語で文字化けってどういうことなんだろう。」、2007-11-05 10:07 のbuttheadさん「これがなぜ英語版OS+英語版VSでは出なくなるのかはわかりません」に対して、「こうしたら、英語圏では定義されていて、日本語圏では定義されていない文字が確認できる」という方法を示したに過ぎません。 (おそらく、未記入さんはわかっておられて、「ASCII 範囲がなぜ化けるの?」ってことだと思いますけど。) ですから、Shift_JIS で編集しているアプリケーションに対して「ストローク付きo小文字」を入力しようとして IME パッドを開き、Unicode で 0x00F8 を入力しても、アプリケーションには入力できない可能性があります。 0x00F8 は、確かに送られていますが、受け取ったアプリケーション側はそのコードを Shift_JIS で解釈しようとするからです。 「可能性がある」と濁しているのは、アプリケーションが「Unicode で送られてきた」ことを認識して、Shift_JIS に変換するかも知れないからです。この辺はアプリケーションの仕様に関わるので、断言はできません。 この辺のこともふまえて、2007-11-02 22:10 (4ページ目最初)の投稿では、「IE でテキストを表示させ、エンコードを「西ヨーロッパ」にして確認しました。」と書いています。私が使っているエディタでは「西ヨーロッパ」のコード体系を表示できないからです。 もっと有名なものでは、Copy Right Sign の (C) と、Trade Mark Sign の TM、登録商標記号の (R) です。それぞれ 0xA9, 0x99, 0xAE に定義されています。 0x99 は Shift_JIS でリーディングバイトですから、続く文字のコードによっては、漢字に化けます。 0xA9, 0xAE はリーディングバイトではないので、このコードが使われている場合、VS2005 では C4819 が発生します。 フォントに文字が定義されていることと、コード体系に文字が定義されていることを混同してはいけません。 混同させるような確認方法を提示した私もいけないのですが。 お節介ですが、buttheadさんが英語圏の人と仕事をするなら、このあたりのことはきちんと押さえておくべきかと思います。 |
«前のページへ
1|2|3|4|5