マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

アプリケーションのUnicode対応

GUI

GUIアプリケーションのUnicode対応

非UnicodeアプリケーションとUnicodeアプリケーション

古いアプリケーションには、非Unicode対応のGUIアプリケーションが存在する。

  • 拡張文字セットを扱うにはアプリケーションのUnicode対応が必要である。
    • 非UnicodeアプリケーションではJIS2004の拡張文字セットだけでなく、Shift-JISにない文字は全て入力できない。
    • 但し、アプリの画面上で、明確に「?」表示になるので、予期せずJIS2004の拡張文字セットが入力されることもない。
  • システムがUnicodeに統一されている場合は、エンコーディングされる箇所を意識する必要がある。
非UnicodeアプリケーションとUnicodeアプリケーション

非Unicodeアプリケーション

  • 非Unicodeアプリケーションでは、Shift-JISにない文字の入力ができない(これは、IMEから、ウィンドウ プロシージャ経由でデータを正しく受け取れないため)。
  • 例えば、JIS2004で追加された拡張文字セット以外の、Shift-JISにない鱓(ごまめ) という文字を非Unicodeアプリケーションに入力して見ると、この文字も入力できないことが確認できる。

[参考]:CyberLibrarian?(図書館員のコンピュータ基礎講座参考資料) > 参考資料JIS補助漢字(JIS X 0212)
http://www.asahi-net.or.jp/~ax2s-kmtn/ref/jisx0212/jisx0212-4.html

・・・ 「鱓」は、JIS90(JIS X 0212)補正漢字

Unicodeアプリケーション

アプリケーションのUnicode対応の方法

VB

VC++

アプリケーションのUnicode対応は = ウィンドウ(ウィンドウ プロシージャ、メッセージ ループ)のUnicode対応である。
ウィンドウ(ウィンドウ プロシージャ、メッセージ ループ)をUnicode対応させるには、IsWindowUnicode? 関数が True を返すウィンドウを作成する。
また、IsWindowUnicode?関数が True を返す場合でも、ウィンドウ プロシージャ、メッセージ ループで、メッセージを正しく処理する必要がある。
ウィンドウ(ウィンドウ プロシージャ、メッセージ ループ)のUnicode対応には、以下が必要である。

  • ウィンドウクラスの登録は、RegisterClassW 関数を使用する。
  • ウィンドウの作成はCreateWindowExA、CreateWindowExW 関数のどちらでも良い。
    ただし、エディット コントロールなどのコモン コントロール類や、
    それをサブクラス化したウィンドウの場合は、CreateWindowExW関数を使わなければならない。
  • ウィンドウ プロシージャでは DefWindowProcW 関数を使う。
  • サブクラス化している場合は、CallWindowProcW 関数を使う。
  • メッセージ ループでは、GetMessageW 、DispatchMessageW 、TranslateAcceleratorW 関数を使用する。

メモ帳、Office(Word、Excel、Powerpoint)、WWWブラウザなどのアプリケーションや、開発環境の標準入力コントロールなど(フロント周り)は、ほぼUnicode対応が済んでいる。

CUI

CMD

FTPをコマンドで実行した所、文字化けしたという話がありましたが、
コマンド・プロンプト(CMD)がSJISアプリケーションとして動作しているためです。

コマンド・プロンプト(CMD)は、

cmd /u その他コマンドライン引数

でUnicode対応します。

それ以外はSJISです(日本のロケールでは)
#日本語以外では各国のロケールの既定の文字コード。

↓のコマンドを /u 有り・無しで起動したコマンド・プロンプト(CMD)から実行テストすると解ります。

C:\Users\daisukenishino>echo 鱓 > aa.txt

鱓(ごまめ)は、Unicodeにしか無い文字。
(UnicodeでおBOM無しで出力されるためサクラエディタなどから開いて下さい)

FTP

FTPは、転送モード(asciiまたはbinary)があり、
転送モード:asciiでは、自動エンコーディングするので、

設定で回避

文字化けが発生する場合は、設定などで回避する必要がある。

  • Windows エクスプローラーの FTP 機能を利用して日本語が含まれたファイルを
    FTP サイトへアップロードすると、ファイル名が文字化けする、
    もしくは FTP フォルダー エラー が発生する場合がある
    http://support.microsoft.com/kb/2416991/ja

サーバ側でエンコード

エンコーディングの指定は無いようなので、
ファイル名などの文字化けなどが発生した場合、
convmv というコマンドを使用して変換するなどが必要になる。


Tags: :.NET開発, :国際化対応, :文字コード


添付ファイル: fileUnicodeSupport.png 322件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-27 (月) 11:08:46 (821d)