Vista文字ー.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Vista文字ー

Windows Vista文字コードと 文字コードの取り扱いについて 文字コード(セット)とは? コンピュータは文字を ”文字” として認識しているのではなく、 0と1のビット列の組み合わせとして、それらを認識している これまでの Windows(XPとか)での文字セット いわゆる CP932 という文字セット IANA定義の “Shift_JIS“ とも異なる CP932とは JIS X0208:1998 + MS文字セット で構成 MS文字セット: IBM拡張文字、NEC特殊文字 JIS X0208, Unicode と比較しても文字セットが異なる Windows(日本語環境)に密着した、独自の文字セット Windows Vista における文字コード JIS X0213:2004 をベースとして採用 ただし、さらに +αな文字が追加されている JIS X0213:2004とは。。。 X0213:2000 に、幾つかの変更が加えられ策定 Unicode との整合性を取ろうと頑張っている が、、Unicode の動きのほうがはるかに早く、結局追いついていない MSフォント Ver5.0の採用 より本来の形に近いとされる字形への変更 JIS X0213:2004 において追加された文字に対応 XPなどで利用されているフォントは、MSフォントVer2.3(2.2) WindowsVistaになり、Unicodeにはなんとか準拠する形に (XP以前: Unicode, JISどちらにもかなりの部分で合致せず) 何が問題? 一言でいってしまえば、、、 「文字化けしてしまう!!」 追加文字が認識できない 「?」 以降の 「○」 に 「21」 ~ といった文字が追加された サロゲート文字を認識できない 16Bit のユニコード領域2つ分を用い一文字を表現 UTF-16 を採用しているため、Unicodeは16Bitと32Bit が混在 結合文字文字を認識できない 「ぱ(UTF16:3071)」 を 「は(UTF16:306F)」 + 「゜(UTF16:309A)」で表現 たとえば、これらの文字がパス名に含まれると、、 従来のコード体系の中では認識できない([?]になったり) では、どうすれば?? そうだ!! 日本語使うのやめちゃえ!!! では、どうすれば?? OS (Windows)としては… WindowsNT4.0: 内部的には、Unicode に対応(実用レベルではない) Windows2000: Unicode Version 2.0 に対応 WindowsXP: Unicode Version 3.0 に対応 つまり、OS としては WindowsNT4.0以降 Unicode が利用できる体系 Windows アプリケーションにおける文字コードベースを Unicodeベース に変更すればよい!! Windowsアプリケーションの C/C++における 文字コードの取り扱いについて Windowsのアプリケーション WindowsのアプリケーションをC/C++で構築する場合、 2種類のビルド方法が存在 #1. MBCS*1 ベース (日本語環境ではCP932ベースで動作) #2. Unicode ベース (言語による違いはなし) 他のアプリケーション (例:VBなど)は、 すべてUnicodeベースで動作 C/C++でコーディングを行う場合のみ、 MBCS/Unicode の違いを気にする必要があり Windows Platform SDK において Platform SDK において (1/2) Platform SDKは、 コンパイル時の文字セットの指定で振る舞い(コンパイルのされ方)が大きく異なる 生成されるバイナリが変化 “_MBCS”をシンボルに定義した場合 Win32 APIおよび C Runtime Library は、char * で文字列のやり取りを行います。(文字セットは日本語版Windowsの場合、CP932を使用) “_UNICODE” および “UNICODE” をシンボルに定義した場合 Win32 APIおよび C Runtime Library は、unsigned short * で文字列のやり取りを行います。(文字セットはUnicode。Windowsの言語に依存しない) いずれのシンボルも定義されていない場合 “_MBCS” 指定の場合と同等の扱い Platform SDKにおいて : 例 GetModuleFileName() Win32 APIを呼び出す場合 アプリケーション側で呼び出す場合 Platform SDKにおいて : 例 Platform SDKの

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档