<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>国際化関連</title><link>http://www.exconn.net/Blogs/team01/category/18.aspx</link><description>3 国際化関連の技術情報</description><managingEditor>ディベロッパー製品開発統括部</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>「Microsoft Visual Studio 2005 品質および機能に関するアンケート」にご協力のお願い</title><link>http://www.exconn.net/Blogs/team01/archive/2006/10/11/16383.aspx</link><pubDate>Wed, 11 Oct 2006 07:24:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2006/10/11/16383.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/16383.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2006/10/11/16383.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/16383.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/16383.aspx</trackback:ping><description>&lt;P&gt;早いもので、Visual Studio 2005 が昨年末にリリースされてから９ヶ月あまりとなりました。皆様も日常お使いの中で、使いやすくなった点やご不満な点など、様々なご意見をお持ちではないかと思います。&lt;BR&gt;そこで我々ディベロッパー製品開発チームでは、日本のお客様のご意見を幅広くお伺いし、次期および将来の製品をより良いものにしていくため&lt;STRONG&gt;「Microsoft Visual Studio 2005 品質および機能に関するアンケート」&lt;/STRONG&gt;と題しまして、機能面や品質に関するアンケートを実施させていただくことになりました。&lt;/P&gt;
&lt;P&gt;できる限り多くのお客様よりご意見をお聞かせいただき、製品に反映していきたいと思います。お忙しいとは存じますが、ぜひアンケートにご協力いただけますようお願いいたします。&lt;/P&gt;
&lt;P&gt;アンケートには&lt;A href=" http://c2.microsoft.fr/VS2005/Default.aspx?elng=1041"&gt;ここ&lt;/A&gt;からご参加いただけます。&lt;/P&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/16383.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>時差のシナリオに関してのご意見をありがとうございました</title><link>http://www.exconn.net/Blogs/team01/archive/2006/08/08/16086.aspx</link><pubDate>Tue, 08 Aug 2006 07:04:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2006/08/08/16086.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/16086.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2006/08/08/16086.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/16086.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/16086.aspx</trackback:ping><description>&lt;DIV lang=ja&gt;みなさん &lt;A href="http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx"&gt;時差のシナリオ&lt;/A&gt;に関して、ご意見をお寄せいただきまして、大変ありがとうございました。 &lt;BR&gt;&lt;BR&gt;今回は、お寄せいただいたなかで、ご質問がいくつかありましたので、答えさせていただきたいと思います。ユーザー設定のタイムゾーンに関するご質問ですが、特定のルール情報を包括的に含めたものを作るのか、タイムゾーンとして独立したものを作って切り替えるのかといった点では議論の余地が残っています。カスタム カルチャに関連付けさせることができるようにするといった話もございますので、可能性としては"ja-JP-01"といったような指定での&lt;A href="http://msdn2.microsoft.com/ja-jp/library/system.globalization.cultureandregioninfobuilder.aspx"&gt;CultureAndRegionInfoBuilder クラス&lt;/A&gt;で作成する&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms172469.aspx"&gt;カスタム カルチャ&lt;/A&gt;で取り扱うことも考えられます。この場合は以前、&lt;A href="http://www.exconn.net/Blogs/team01/archive/2005/04/08/327.aspx"&gt;カスタムカルチャのシナリオ&lt;/A&gt;でご紹介した、名前をコンピュータ全体で取り扱ってしまう懸念が残ります。 &lt;BR&gt;&lt;BR&gt;時差の変更の際の曖昧／重複に関するご質問は、いただいた通り、春先に時計の針を進めた際の失われる時間、秋に戻す際の重複する時間の判断をする関数のこととなります。差分（オフセット）時間やサマータイム区別する文字列が表記に含まれる場合はこの問題は生じませんが、これらの情報がないまま時刻のみがログに記録されている場合など、ご指摘いただいたように対応の方法を考えることになります。&lt;BR&gt;&lt;BR&gt;今回、その他の皆さんからもお寄せいただいた、ご経験に基づく詳細なシナリオは、日本のお客さまに基本クラス ライブラリをよりよくお使いいただくうえで、いずれも大変参考になるご意見でした。今後のタイムゾーンに関する機能の詳細に関して、頂いたご意見をあわせて、CLRチームと検討をさせていただきます。 &lt;BR&gt;&lt;BR&gt;繰り返しになりますが、再度、御礼申し上げます。&lt;/DIV&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/16086.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>日本における時差のシナリオに関してご意見をお聞かせください</title><link>http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx</link><pubDate>Fri, 21 Jul 2006 05:30:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/15292.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/15292.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/15292.aspx</trackback:ping><description>&lt;DIV lang=ja&gt;先日、.NET Frameworkの&lt;A href="http://blogs.msdn.com/bclteam/" hreflang=en&gt;基本クラス ライブラリを作っているチーム&lt;/A&gt;から、時差を表す&lt;A href="http://msdn2.microsoft.com/ja-jp/library/ms290195.aspx"&gt;TimeZone クラス&lt;/A&gt;の機能に関して問い合わせが来たので、こちらのblogをご覧の皆さまからもご意見をお聞かせいただければと思い、今回は書いてみます。&lt;BR&gt;&lt;BR&gt;現在、日本国内では時差はないので、国内向けのアプリケーションを作る場合は、さほど考える必要性がありません。しかし、最近では多国籍な会社のお客様からの要求や、国内でも特定地域でのサマータイムの実験の要求なども出ています。.NET Frameworkの基本クラス ライブラリ（BCL)では、&lt;A href="http://msdn2.microsoft.com/ja-jp/library/system.timezone.touniversaltime.aspx"&gt;DateTime.ToUniverslTime メソッド&lt;/A&gt;や&lt;A href="http://msdn2.microsoft.com/ja-jp/library/system.timezone.touniversaltime.aspx"&gt;TimeZone.ToUniversalTime メソッド&lt;/A&gt;を使ってローカルの時刻を元に世界協定時刻（UTC)を導くことができますが、特定のタイム ゾーンの時刻を変換するには、独自の工夫が必要です。&lt;BR&gt;&lt;BR&gt;&lt;A href="http://blogs.msdn.com/bclteam/archive/2006/07/05/657242.aspx" hreflang=en&gt;原文&lt;/A&gt;からの受け売りになりますが、現状BCLチームが大きなデザインとして考えているのは以下の点になります。&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;タイム ゾーンの列挙 
&lt;LI&gt;タイム ゾーン間の時刻変換 
&lt;LI&gt;タイム ゾーンのシリアル化 
&lt;LI&gt;DateTimeに標準時からの差分を組み込む 
&lt;LI&gt;歴史的経緯からサマータイムのルールが年毎に変わっていたもののサポート&lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;少し視点を日本に向けて歴史的経緯からみると、日本で昭和20年代に実施され廃止された、&lt;A id=夏時刻法&gt;夏時刻法&lt;/A&gt;および西部標準時をどう取り扱うべきか（または取り扱わないべきか）というところも考えなくてはいけないでしょう。 &lt;BR&gt;&lt;BR&gt;ここで、原文の方を読み進めると、以下の9つの点に関して英語ユーザーからの意見を募っています。 &lt;BR&gt;&lt;BR&gt;
&lt;OL&gt;
&lt;LI&gt;ユーザー設定のタイム ゾーンの作成（時間帯を、既定でコンピュータ上にあるもの以外に、プログラム的に作成すること） 
&lt;LI&gt;ユーザー設定のタイム ゾーンを恒久的にコンピュータ上に書き戻す 
&lt;LI&gt;サマー タイム設定を切った状態でタイム ゾーンのコピーの作成 
&lt;LI&gt;&amp;nbsp;サマー タイムのため、時計の時刻を前後した際のローカル タイムが未確定、もしくは曖昧／重複にあるかどうかを問い合わせる関数 
&lt;LI&gt;歴史的経緯によって基本になる差分が年毎に変わったタイムゾーン（&lt;A href="http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx#夏時刻法"&gt;前述&lt;/A&gt;の夏時刻法に対する実装が関係してきます） 
&lt;LI&gt;稼動中のコンピューターの現在のタイム ゾーンの変更 
&lt;LI&gt;スレッド単位、もしくはプロセス単位のアンビエント タイム ゾーン&lt;A href="http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx#アンビエント タイム ゾーン"&gt;*1&lt;/A&gt;の設定 
&lt;LI&gt;一行で簡潔に変換を可能にするヘルパ関数（TimeZone.Convert(time, "Pacific", "Eastern") のような） 
&lt;LI&gt;"PST", "EDT"といったタイム ゾーンを組み込んだDateTimeに対する解析と書式設定&lt;/LI&gt;&lt;/OL&gt;&lt;BR&gt;お手数ですが、以上の点につきまして、トラックバックにてご意見をお寄せください。形式は「どのようなものでも」ということなのですが、「必要／不要／多分必要」のいずれかのランクをつけていただき、それに関する簡単な説明を加えていただけますと、実装担当者との意思疎通の際に助かります。原文には「実装のお約束はできませんが」といった前置きがありますので、恐れ入りますが、この点はご容赦ください。 &lt;BR&gt;&lt;BR&gt;将来のよりよい製品をお届けするために、ぜひ、ご協力をお願い申し上げます。&lt;BR&gt;&lt;BR&gt;
&lt;HR&gt;
&lt;A id="アンビエント タイム ゾーン"&gt;*1&lt;/A&gt; &lt;A href="http://msdn2.microsoft.com/ja-jp/library/system.globalization.cultureinfo.aspx"&gt;CultureInfo クラス&lt;/A&gt;のようにスレッドのような実行単位に対して環境的に設定することを意味しているでしょう。間違っていた場合は、後日修正をこちらに追記いたします。 &lt;/DIV&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/15292.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>続Atlasプロジェクトの国際化 （日本でどうする？）</title><link>http://www.exconn.net/Blogs/team01/archive/2006/07/04/14369.aspx</link><pubDate>Tue, 04 Jul 2006 10:42:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2006/07/04/14369.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/14369.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2006/07/04/14369.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/14369.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/14369.aspx</trackback:ping><description>&lt;DIV lang=ja&gt;以前、&lt;A href="http://www.exconn.net/Blogs/team01/archive/2005/07/06/1155.aspx"&gt;ご紹介させていただいた&lt;/A&gt;Atlasですが、CTPも数回出ましたし、Go-Liveという形態で使っても良いことに３月からなっていますね。私も少し自分のプロジェクトのページを&lt;A href="http://atlas.asp.net/docs/atlas/doc/controls/default.aspx#updatepanel" hreflang=en&gt;UpdatePanel&lt;/A&gt;を使ってコンテンツの一部分を書き変えたリ、テキストボックスに&lt;A href="http://atlas.asp.net/docs/atlas/doc/controls/default.aspx#controlextenders" hreflang=en&gt;AutoCompleteExtender&lt;/A&gt;で読み仮名からの自動補完の機能を付けてみたリしています。&lt;BR&gt;&lt;BR&gt;Atlasの全容が明らかになるにしたがって、なかなか奥が深いことがわかります。クライアント側のスクリプト ライブラリにインターフェイスや名前空間、継承といったオブジェクト指向の基礎となる部分を実装し、それらを使って基本クラス ライブラリを作り、それを土台にコンポーネントのモデルとUIフレームワークを構築、コンポーネントやコントロールを組み上げるというものが、ブラウザの違いを吸収する層の上にあるので、開発者の生産性やコードの再利用性などはかなり高いのではと思います。スクリプト ライブラリはAtlasを&lt;A href="http://atlas.asp.net/Default.aspx?tabid=47" hreflang=en&gt;インストールして&lt;/A&gt;いただければ、ソース コードをご覧いただけるので、研究調査の対象としても良いかもしれません。&lt;BR&gt;&lt;BR&gt;クライアント側のプログラミング モデルは慣れていければプログラム的にJavaScriptを書くことも宣言的にXMLスクリプトも書くことはできると思いますが、&lt;A href="http://www.microsoft.com/japan/msdn/vstudio/productinfo/roadmap.asp#orcas"&gt;開発ツール&lt;/A&gt;のサポートが必須ではないかと思います。反面サーバー側のタグによる宣言的モデルは、マークアップビューでの自動補完の機能が効いていますし、デザイン ビューでのプロパティ グリッドやスマート タグも使えるので、Webページを開発なされる方は英語であってもそれなりに、お試しいただけるのではないかと思います。もちろんサーバー側のコントロールですので、動的な動作も現在のASP.NETのサーバー側のプログラミングの延長で行えます。 &lt;BR&gt;&lt;BR&gt;以前のblogではUIの改善のためにという形でご紹介をさせていただいたのですが、さらに興味深いのは、サーバー側にBridgeと呼ばれる他のサービスやデータを集約、橋渡しを行う箇所があることです。これらのことを考えていくと、使用者に対してWebでの体験を統括的に改善する術を提供できるのではないかと思います。 &lt;BR&gt;&lt;BR&gt;さて、以前に懸念している事項としていくつかの日本の使用シナリオを挙げ、トラックバックにて貴重なフィードバックをいただいたのですが、国際化のモデルはASP.NET 1.xから継続してある&lt;A href="http://msdn2.microsoft.com/ja-jp/library/bz9tc508.aspx"&gt;カルチャを使うGlobalizationのモデル&lt;/A&gt;を使い、ブラウザのリクエストに拠って適当なカルチャをSys.CultureInfoに返すというスタイルです。多言語化は翻訳やコンテンツのみならず、照合順序なども考えないといけませんが、クライアント側のJavaScriptの機能で制限を受けてしまうことは考えられるかもしれません。他に、JSONのエンコーディングはUnicodeのいずれかのものでUTF-8が既定と先日&lt;A lang=en href="http://www.ietf.org/internet-drafts/draft-crockford-jsonorg-json-04.txt"&gt;IETFのドラフト&lt;/A&gt;で方向性が示されましたし、他のXMLなどによるデータのやりとりもそれに準拠することになると思いますが、これが現在のASP.NETの&lt;A href="http://msdn2.microsoft.com/ja-jp/library/39d1w2xf.aspx"&gt;responseEncoding&lt;/A&gt;などで返されるコンテンツとうまく整合性がとれるのかなど、調査作業は山積しております。 &lt;BR&gt;&lt;BR&gt;懸念事項のうちの２番目として挙げさせていただいたIMEとの動作ですが、弊社のツールである&lt;A lang=en href="http://www.fiddlertool.com/fiddler/"&gt;Fiddler&lt;/A&gt;などを経由してHTTPの中身を覗いてみると、テキストボックスなどでは変換前の入力文字ごとにサーバーへ要求が送られているようです。しかし、AutoCompleteで別なコントロール(たとえば隣にあるボタン)をクリックすると、未確定候補が選択項目を上書きしてしまったりしますね。&lt;/DIV&gt;
&lt;DIV lang=ja&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV lang=ja&gt;Go-Liveとはいえ現状は、まだ開発途上であります。ぜひ、お使いいただいた中で、これ以外にも日本語を扱う上でお気づきになられたことがありましたら、トラックバックにてご意見やご要望をお聞かせください。 &lt;/DIV&gt;
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;ナオキさん、フィードバックをありがとうございます。Fiddlerに加えてWeb Development Helperなどもお使いいただけますね。Fiddlerがなかったころは、文字化けの調査などにはWindows Serverの&lt;A href="http://support.microsoft.com/default.aspx?scid=kb;ja;294818"&gt;ネットワーク モニタ&lt;/A&gt; (NetMon)を使っていました。こちらであれば、Windows Serverのユーティリティとして日本語化もされていますので、使いよいかもしれませんね。&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;[2006/7/13: 更新] フィードバックへの返信を追加&lt;/P&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/14369.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>国際対応アプリケーションを開発する時によくある問題</title><link>http://www.exconn.net/Blogs/team01/archive/2006/04/05/8793.aspx</link><pubDate>Wed, 05 Apr 2006 00:42:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2006/04/05/8793.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/8793.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2006/04/05/8793.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/8793.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/8793.aspx</trackback:ping><description>&lt;P&gt;今回は国際対応アプリケーションを開発する時によくある問題についてお話したいと思います。&lt;/P&gt;
&lt;P&gt;既にご存知かと思いますが、.NET Frameworkだけでなくマイクロソフトの次期OSであるWindows Vista上のIIS7といったサーバー製品も、自身の設定情報をレジストリやメタデータなどから、XML形式の構成ファイル(.config)に持たせるようデザインが変更されました。これには開発時から実際の運用時への構成の配置の便利さ、編集が容易である、ASP.NETのWeb.configファイルとの統合など様々なメリットが挙げられます。そこで１つの例として私がテスティング時によく直面する構成ファイルにおける問題についてお話しします。&lt;/P&gt;
&lt;P&gt;日本で新製品を初めてテストする場合は、当然の事ながら必ず各種機能がひらがな、カタカナなどの日本語を使っても正しく動作するかを確認します。よく遭遇する問題としては、日本語が含まれた構成ファイルをアプリケーションが読み込む時にエラーが発生するケースです。.NET Framework SDKのドキュメント内の国際対応アプリケーションの開発にも書いてありますが、WindowsやVisual Studioのような国際対応アプリケーションを開発するときには、コアとなるコードとユーザーインターフェイスなどを切り分けるモデルを採用します。そして、そのコアコードを書くデベロッパーがアルファベット圏の人で、国際対応アプリケーションを意識したコーディングに慣れていない場合などには、ストレートにANSI既定として構成ファイルを読み込むようにコーディングしてしまう場合があるようです。彼らが使うアルファベットと数字だけの構成ファイルをアプリケーションが読み込めるようにコードを書いているので、構成ファイル内にXML宣言のエンコーディングがUTF-8と設定されている場合などは、特に国際対応アプリケーションのように感じてしまいます。即ちBOM（Byte Order Mark：UnicodeのUTF-16など16ビット幅のエンコーディング方式において、データー内のバイト順を指定するためにファイルの先頭に記入される16ビットの値。UTF-8のBOMは文書がUnicodeで記述されているかどうかを判別するために用いられる。）が無いUTF-8エンコーディングのファイルがアルファベットと数字及び記号だけでしたら、全くANSIと同じ文字コードになるからです。ここに日本語のような２バイト文字を使ったテストを行った時に初めて構成ファイルの解析エラーとなって問題が発生してしまう事があるのです。これはシングルバイトの文字が当たり前の彼らと、マルチバイト文字が当たり前の日本人との間でのエンコーディングに対する意識の違いかもしれません。&lt;/P&gt;
&lt;P&gt;また日本語化する翻訳の人が、翻訳後にファイルを保存する時にも別の問題が発生する事があります。構成ファイル内のコメント等を日本語化する作業が開発スケジュールの最後にきた時などが特に危険です。コアコードは２バイト文字の日本語を正しく読み込めるように修正はされてはいますが、基本的にテンプレートとなる構成ファイル自体がアルファベットのANSIファイルベースとして作れられている事があります。&lt;/P&gt;
&lt;P&gt;そこで翻訳の人がコメントをメモ帳などで日本語に編集しそのまま既定で保存した場合、XML宣言のエンコーディングはUTF-8と設定されているにもかかわらず、ANSI SHIFT-JISエンコーディングとして保存されてしまいます。そこで今度は、コアコードがXML宣言を見てUTF-8として読み込もうとしますが、実際はANSI SHIFT-JISなので解析エラーとなってしまいます。&lt;/P&gt;
&lt;P&gt;従いまして、最初の問題は開発スケジュールの初期に修正されても、次の問題は開発スケジュールの最後の最後にまた発生するかもしれません。&lt;BR&gt;結局製品が出荷されるまでは、どんなに面倒でも同じテストを繰り返す事が重要とされるわけです。&lt;/P&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/8793.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>ひらがなやカタカナの取り扱い</title><link>http://www.exconn.net/Blogs/team01/archive/2005/12/20/5694.aspx</link><pubDate>Tue, 20 Dec 2005 07:44:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2005/12/20/5694.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/5694.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2005/12/20/5694.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/5694.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/5694.aspx</trackback:ping><description>    &lt;div lang="ja"&gt;
        &lt;p&gt;
            まだ一部残ってはいますが、Visual Studio 2005や .NET Framework 2.0も生産過程に入って開発も一段落しました。先日の&lt;a href="http://www.event-registration.jp/events/msc05/"&gt;MSC&lt;/a&gt;のラウンチ
            イベントをはじめとして、立ち上げに際してお客様の話を聞かせていただく機会が幾度とありましたが、もう間もなく稼動に入られるほど準備が整っているかたから、これから評価検討をなされる方まで、様々な方がいらっしゃるようです。今回もすべてのお客様のすべてのご要望を組み入れることは残念ながらできませんでしたが、これまでにお寄せいただいた沢山のご要望や、これからお聞かせいただくご要望に関しては、また今後の製品計画で検討して役に立てていかなければと思います。&lt;/p&gt;
        &lt;p&gt;
            閑話休題。さて、そんな中で、最近Unicodeも&lt;a href="http://www.unicode.org/versions/beta.html"&gt;新しいバージョン5.0のベータ&lt;/a&gt;が始まりました。Unicodeも弊社のOS製品に採用されて、もう、何年も使い込まれた枯れた技術になった感がありまが、最近では日本語以外の少数派の言語の充実ぶりが目立っています。しかし、意外と今でもひらがなやカタカナのような基本的な日本語の要素に目を向けてみると思わぬ発見があります。
            Unicodeでは&lt;a href="http://www.unicode.org/charts/PDF/U3040.pdf"&gt;ひらがな&lt;/a&gt;はU+3040から始まりU+309Fまで、&lt;a
                href="http://www.unicode.org/charts/PDF/U30A0.pdf"&gt;カタカナ&lt;/a&gt;はU+30A0からU+30FFまでといったブロックとよばれる領域に割り当てられています。この中で、なかなか興味ことがらが4つほどあります。
            &lt;br /&gt;
        &lt;/p&gt;
        &lt;ol&gt;
            &lt;li&gt;必ずしもひらがなとカタカナの文字が一対一に割り当てられているわけではない。&lt;/li&gt;
            &lt;li&gt;必ずしもブロック名でカタカナやひらがなと指定されている文字が、五十音でいうところのそれらであるとは限らない。&lt;/li&gt;
            &lt;li&gt;ひらがなの小さな「か」「け」やカタカナの「ワ」に濁点のや「ヰ」に濁点といった見慣れない文字がある。 &lt;/li&gt;
            &lt;li&gt;複合用の濁点（U+3099）や半濁点（U+309A）がある &lt;/li&gt;
        &lt;/ol&gt;
        1.はひらがなの領域にReserved（予約）という形式で文字が割り振られていないものがあることが、端的にあらわしています。これらはU+3040、 U+3097、
        U+3098ですが、カタカナでは記号やひらがなにない文字が割り振られています。 2.に関しては濁音や半濁音、または長音記号など、がカタカナやひらがなと認識されるブロックに存在しています。
        3.は、ひらがなに小さいカタカナの「ヵ」や「ヶ」が対応するものというもののようですが、日常見るものではありません。また、「&amp;#12535;」や「&amp;#12536;」といった旧仮名遣いのために使うカタカナ固有の文字はありますが、それらのひらがなバージョンはありません。ひらがなの「う」に濁点を打ったものはありますから、なにか規則的にこうなっているのかは不明です。
        4.ですが、上記の3の状態を補うためなのかはよく分かりませんが、Unicode固有の概念の複合用の文字のための濁点や半濁点があります。&lt;p&gt;
            これらのことを踏まえて考えると、ひらがなやカタカナの判別やその相互変換、Unicode以外のエンコーディングや全角半角といった文字幅への変換は、意外と一筋縄ではいかないのかもしれません。試しにRegExの&lt;a
                href="http://msdn2.microsoft.com/ja-jp/library/system.text.regularexpressions.regex.ismatch.aspx"&gt;IsMatch&lt;/a&gt;によるIsHiraganaやIsKatakanaの&lt;a
                    href="http://msdn2.microsoft.com/ja-jp/library/20bw873z.aspx"&gt;文字クラス&lt;/a&gt;を使った正規表現の照合判別や、Visual
            Basicの&lt;a href="http://msdn2.microsoft.com/ja-jp/microsoft.visualbasic.strings.strconv.aspx"&gt;StrConv&lt;/a&gt;関数、Win32
            APIである&lt;a href="http://msdn.microsoft.com/library/en-us/intl/nls_5s2v.asp?frame=true"&gt;LCMapString&lt;/a&gt;関数などを使って動作を試してみるのも面白いのかもしれません。&lt;/p&gt;
        &lt;p&gt;
            なにか「この動作にはやられた」といったようなお話があれば、トラックバックなどでお聞かせいただければ幸いです。&lt;/p&gt;
        &lt;hr /&gt;
    &lt;br /&gt;
    [2005/12/29: 更新] 一部の言い回しの修正とリンクの追加、文字化けの修正をしました。&lt;br /&gt;
    [2006/01/05: 更新] 文字化けが修正されていないのをエンティティ参照に変更しました。&lt;br /&gt;
    
    &lt;/div&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/5694.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>エンコーディングの話 Part 2</title><link>http://www.exconn.net/Blogs/team01/archive/2005/10/19/4042.aspx</link><pubDate>Wed, 19 Oct 2005 10:43:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2005/10/19/4042.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/4042.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2005/10/19/4042.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/4042.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/4042.aspx</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;(&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;これは、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://www.exconn.net/Blogs/team01/archive/2005/08/17/2441.aspx"&gt;&lt;FONT face=Century&gt;8&lt;/FONT&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;&lt;SPAN lang=EN-US&gt;月&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Century&gt;17&lt;/FONT&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;&lt;SPAN lang=EN-US&gt;日の「エンコーディングの話&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Century&gt; Part 1&lt;/FONT&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;&lt;SPAN lang=EN-US&gt;」&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の続きです。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;やっと、上司から開放されました。長かったですね&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; Part 1 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;から約２ヶ月も経ってしまいました、本当にすみません。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;さて、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Part 1 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、内部的な話を中心に話を進めて参りました。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Part 2 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、外部とのインターフェース、具体的にはファイルのエンコーディングについて書いてみたいと思います。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ここまで、単に「&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;」と呼んで参りましたが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;というのは非常に漠然とした表現なので、これより先ではもう少し正確な表現を使いたいと思います。そこで、簡単に&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;のエンコーディングに関して簡単にまとめたいと思います。詳しい方にとっては極めて大雑把でありながら、なじみの無い方にとっては細かすぎる感じがするかもしれませんが、そこは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; BLOG &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;なので「まあ、こんなところか&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;...&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;」といった感じに流していただけると幸いです。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;U&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;２つの&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;意外に知られていませんが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の規格には２種類あります。１つは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;コンソーシアムによって標準化されている&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; The Unicode Standard &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;で、もう１つは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; ISO/IEC 10646 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;という国際規格です。２種類あると言いましても、まったくの別ものというわけではなく、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;コンソーシアムと&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; ISO&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の担当グループが緊密に連絡を取りながら開発を行っているので符号化文字集合としてはコードポイントまで含めて完全互換になっています。簡単にいえば、どちらの規格でも&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;U+3041 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;はひらがなの「あ」を意味します。しかし、共通言語ランタイムや&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;C# &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、テクニカルレポート等を多く参照しているため、気を付けなければならない点があるのも事実です。近年では、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;ISO/IEC 10646&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;が規定内容の一部として&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の技術内容を引用するなど、両者の互換性はますます高くなってきていますので、特に意識しなくてもあまり問題になることはありませんが、用語などには異なる部分もあるので、調べるときなどは違いを意識した方が良いときも依然あります。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ちなみに、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;.NET &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;のランタイムやプログラミング言語の仕様では、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;を参照しています。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;U&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;文字セットとエンコーディング&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;文字セットとエンコーディングは混同されてしまいがちですが、明確に区別して考えた方が良いでしょう。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の文字セットは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS (Unicode Character Set)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と呼ばれます。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;には、符号化文字空間の大きさによって&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS2&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS4&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の２種類があります。混同し易いのですが、文字集合を定義したものであってエンコーディングではありません。また、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode 3.2 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;から文字が大量に追加されたので、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;2&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;バイトの&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UCS2 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;は&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS4&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;のサブセットになっています。ちなみに、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;という呼び方は本来&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; ISO &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の呼び方で、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;ISO &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の用語として&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Appendix &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;に記載されています。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;一方、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;のエンコーティングは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF (Unicode Transformation Format)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と呼ばれていて、文字セットと同様&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8, UTF16&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF32 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;というようにビット数に応じていくつかの種類があります。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;も&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UCS&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と同様もともとは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; ISO&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の用語ですが最新の&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard 4.0 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では詳しい説明とともに規定されています。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF7 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;というようなものも存在しますが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;で規定されているのは、上記の３種類だけなので、ここでは省略します。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;詳しくは規格を参照していただきたいのですが、話を進める上で必要なので、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UTF16 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;だけ簡単におさらいしておきたいと思います。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8 &amp;#8230;. 8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ビットのエンコーディングで、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;0x00 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;から&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; 0x7f &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;までの範囲は、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;ASCII &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と互換性があります。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;ASCII &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;文字は１バイトで表現されますが、一方で殆どの漢字は３バイトになります。ただ、文字の先頭が分かるようになっているので、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;shift-jis &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;のようになにかで境界がずれると、そこから先はすべて化けるというようなことは起こりません。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF16 &amp;#8230;. 16&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ビットのエンコーディングで、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;0x0000 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;から&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; 0xffff &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;までは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UCS &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の番号をそのまま使用します。一般に、単に&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;といった場合、この&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF16&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;を示すと考えて良いでしょう。メモ帳で保存するとき文字セットに「&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;」を選択すると&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UTF16 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;で保存されます。文字セットが&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF16 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;というのは奇妙ですが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、文字セットとエンコーディングを厳密に区別せず、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;という用語を使用しているため、間違というわけではありません。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;また、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;0xffff&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;を超えるコードポイントをもつ文字はサロゲートと呼ばれる方法で、２つの１６ビットで表現されます。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF16 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;は&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;16&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ビットですが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;CPU&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の構造上１バイトずつ下位桁から並べるもの（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Little Endian&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;）と、上位桁から並べるもの（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Big Endian&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;）があるので、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF16 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;にはバイトの順序によって、さらに２種類に分かれます。明確に区別する必要がある場合には&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF16BE, UTF16LE &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;というように記述されます。なぜ、このような細かいお話をしたのは、単に&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UTF16 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と指定した場合にはエンディアン（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Endian&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;）を識別するために&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Byte Order Mark&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;）と呼ばれる、特別な１６ビットを先頭に付加することができるのですが、この&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の扱いがファイルに保存するエンコーディングを考える上で重要な意味を持ってくるからです。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;まだまだ書きたいことは山ほどあるのですが、これ以上前置きが長くなってしまうと、本題がまた先送りになってしまいますので、そろそろ&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Visual Studio &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の話に戻りましょう。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Visual Studio .NET 2005 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（現在ベータ版配布中）では&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Visual Basic .NET&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;C#&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;J#&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;などのプログラミング言語のソースファイルの既定のエンコーディングを&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;shift-jis &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;から&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（シグネチャ付き）に変更しました。つまり、新しいプロジェクトを作成したときに、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;でソースファイルが作成されます。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Visual Studio .NET 2003 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;までは、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;XML &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;など一部を除いてソースファイルは、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;shift-jis &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;で保存されていました。これは、過去との互換性を考慮しての判断だったのですが、最近のアンケート結果やイベント等を見ていると、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;がかなり浸透してきているようなので、思い切って変更することに決定しました。もともと&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;C#&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の言語仕様ではソースファイルはいづれかの&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Unicode&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;エンコーディングで保存されることを基本としていますので。そういう意味では、機が熟して、本来あるべき仕様にすることができたということになります。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;上では、さらっと、「&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（シグネチャ付き）」と書いてしまいましたが、「シグネチャ付き」とはいったい何を意味しているのでしょう。実は、ここでシグネチャと呼んでいるものが、上で説明した&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;です。８ビットの&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;にバイトの順番を示す&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; BOM&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;を付けるというのは、まったくもって不思議に思われる方も多いと思います。実際、「絶対に付けるべきではない」と主張されている方も多く、永遠に結論が出ることはないのではないかと思うような議論が繰り広げられています。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;なんら根拠はありませんが、経験的には、マークアップ言語や&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Office&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ドキュメントのように、構造を持っていてエンコーディングの指定が可能となるような文章を中心に扱っている方には「付けるべきでない」派が多く、プレーン（なんの構造も持たない）テキストファイルを扱う方には、「あった方が良い」という方が多いように思います。これは、歴史的に&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; Windows &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;shift-jis&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（日本では）が長年使われていましたが&lt;/SPAN&gt;&lt;FONT face=Century&gt; &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;プレーンテキストでは&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;shift-jis&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UTF8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;を区別する手段がないため、混在してしまうとどうにもならないということからきているのだと思います。このような場合&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; BOM&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;でを付けることによって&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;がついているかいないかで、かなりの確率でエンコーディングを正しく知ることができるようになります。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;The Unicode Standard &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;にも、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;でバイトの順番を考える必要はないが、エンコーディングを判別するためのシグネチャとして使用しても良いと記述されています。この記述に合わせて&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; Visual Studio &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では敢えて「&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;付き」でなく「シグネチャ付き」という言葉を使用しています。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;我々は、ソースファイルに「シグネチャ付き」を選択したわけですが、実はプログラミング言語には言語仕様というキチンと定まった構造定義があるので、プレーンテキストではないですね。その気になれば言語仕様の中で、エンコーディングを指定する文法を入れることで判別できるようにすることも不可能ではありません。実際、リソースコンパイラ&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;.rc &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、文法中にコードページを指定できるようになっています。しかし、これはリソースコンパイラのように&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; Windows &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;に特化したものだからできたことで、それぞれ違った文法、構造をもったものが多数存在すが一般のプログラミング言語では現実できではないでしょう。すべての言語仕様をこのために変更できるとは思えませんし、仮にできたとしても、文法中にエンコーディングを入れる方法では、言語毎に判別方法が異なってしまいますので、エディタにとっては、たまったものではありません。しかも、コンパイラの結果は目で見ることができないことが多いため、間違ったエンコーディングで読み込んでしまっても、気が付かないというケースも考えなくてはなりません。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;このようなことから、我々はソースファイルのエンコーディングの既定値として、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（シグネチャ付き）を選択することにしました。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;一方、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;xml &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;に関しては、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Visual Studio .NET 2003 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;と同様、同じ&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt; UTF8 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;ですが、「シグネチャなし」が既定になります。これは、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;xml &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の仕様書では&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;xml &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の宣言の前には空白もあってはならないと規定されているため、（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;を内容の一部と捉えるか、ファイル形式の一部と捉えるかによっても違いますが）仕様を厳格に捉えると&lt;/SPAN&gt;&lt;FONT face=Century&gt; &lt;SPAN lang=EN-US&gt;BOM &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;があってはいけないということになるからです。そもそも、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;xml &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;では、上でも触れましたように、その文法の一部としてエンコーディングを指定できるので、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;みたいなものを付ける必要はまったくありません。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;もっとも、最近では&lt;/SPAN&gt;&lt;FONT face=Century&gt; &lt;SPAN lang=EN-US&gt;xml &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;の仕様書でも、エンコーディング判別のステップの中に、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;UTF8&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;　の&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;BOM &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;に関して明記してありますし、各種のツールでも対応しているものが多くなったので、以前ほど厳格ではなくなってきたという印象ではあります。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;もう少し具体的に&lt;/SPAN&gt;&lt;FONT face=Century&gt; &lt;SPAN lang=EN-US&gt;Visual Studio .NET 2005 &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;のエンコーディングのサポートについて書きたいところですが、どこからともなく聞きなれた私を呼ぶ声が。。。と、いうわけで、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Century&gt;Part 3&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'ＭＳ 明朝'; mso-hansi-font-family: Century; mso-ascii-font-family: Century"&gt;（完結編？）はこの次ということで。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Century&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/4042.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ディベロッパー製品開発統括部</dc:creator><title>エンコーディングの話 Part 1</title><link>http://www.exconn.net/Blogs/team01/archive/2005/08/17/2441.aspx</link><pubDate>Wed, 17 Aug 2005 06:47:00 GMT</pubDate><guid>http://www.exconn.net/Blogs/team01/archive/2005/08/17/2441.aspx</guid><wfw:comment>http://www.exconn.net/Blogs/team01/comments/2441.aspx</wfw:comment><comments>http://www.exconn.net/Blogs/team01/archive/2005/08/17/2441.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.exconn.net/Blogs/team01/comments/commentRss/2441.aspx</wfw:commentRss><trackback:ping>http://www.exconn.net/Blogs/team01/services/trackbacks/2441.aspx</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;ここ数年、ソフトウェア自体やソフトウェア開発の国際化が急速に進んでいますね。国際化に対応するために、開発ツールもいろいろな対応が必要になってきています。一方で、開発ツールが高機能化し、多くのコードを自動生成するようになったことで、プログラムの要素と目に見えるもの（ユーザーインターフェースなど）の境目がなくなってきました。結果として、開発効率を向上するためには、プログラム中でも日本語が使用できることが必要になってきています。今回は、こういった国際化と日本における開発効率を両立するための重要なポイントでありながら、意外と語られていない文字のエンコーディング（符号化）について思いつくまま書くつもりです。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;今までエンコーディングなんてあまり気にしていなかったという方にも読んでいただきたいので、最初にちょっとだけ、これまでの流れについて触れておきたいと思います。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;PC&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;の世界では&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;MS-DOS&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;の時代から長い間&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;shift-jis&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;が使用されてきました。２０年くらい前は、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;shift-jis &lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;で全く問題ありませんでした。ソフトウェアの国際化は進んでいなかったですし、大半の開発者がプログラムは英語であたりまえと考えていたからです。しかし、ご存知の通り、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;shift-jis &lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;で保存されたテキストファイルは他言語のオペレーティングシステムでは正しく表示できませんし、一つのファイルに多言語のテキストを含めることもできません。これでは、国際化にも対応できませんし、プログラム要素に日本語を使うといったこともできません。そこで、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;の登場です。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;に対しては賛否両論いろいろご意見があるかもしれませんが、認知度や採用実績を考えると&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;以上のものは存在しないという点ではおおかたの合意が得られるのではないでしょうか。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Microsoft&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;も１０年以上前からオペレーティングシステムで&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;採用してきていますし、今後も&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;を全面的に採用していくことになるでしょう。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;そういえば、予断ですが、先日（といってもだいぶ前になりますが）開発環境展に行ってきました。そこでも比較的日本に特化していると思われる帳票のコーナーでさえ、頻繁に&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode &lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;という単語を目にしたような気がします（気がするだけかも）。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;さて、開発ツールの話に戻しますと、以前から&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual C++&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;で&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;ライブラリを使って&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;アプリケーションが開発出来る他、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual Basic&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;も内部的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;を使用していました。しかし、言語仕様や統合開発環境における本格的な&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;サポートとなると意外にも３年前の&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual Studio.NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;が最初になります。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual Studio.NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;に含まれる、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual Basic.NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual C#&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;や&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual J++&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;といった開発言語（以下、まとめて&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt; .NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;開発言語と呼びます）では、言語仕様を見ていただければ分かるように、言語文法中の文字の定義自体が&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;をベースにしています。もちろん、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;.NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;開発言語のベースとなる共通言語ランタイムにおいても、名前や文字列はすべて&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;であり、内部的も&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;を使用するよう規定されています。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;このことによって、クラスやメソッドなどの名前に日本語を使用することができるようになり、しかも日本語のメソッドは他言語（ここでは、英語、中国語など普通の言語、以下、「自然言語）として区別します）のオペレーティングシステム上で正しくコンパイル、実行できるようになりました。例えば、以前はデータベースのフィールド名が英語の場合には、「&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;CustomerField&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;」「&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;RegistrationNumberField&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;」のように分かりやすい名前をつけられても、日本語であった場合には、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Field1&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Field2&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;というように単に番号を付けただけの名前になってしまっていましたが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;.NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;開発言語では、英語の場合と同様に「顧客&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Field&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;」「登録番号&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Field&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;」といった直感的に分かる名前を付けることができるようになりました。実際、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Visual Studio.NET&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;では、このような分かりやすい名前を自動生成します。同様に&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;MenuItem&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;なども名前に日本語が使用できると、分かりやすい名前が生成できるようになりますね。ここで、国際化という観点では他国の開発者がソースコードを参照する場合のことも考えなければいけませんが、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Field1&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;というような名前のまま他の開発者にソースコードを渡すことはないでしょうから、どのみち名前の変更が必要になるのなら、元の名前が分かりやすいに越したことはありませんね。ただし、課題もあります。現状では、日本語の名前は&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;IME&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;で確定しないとインテリセンスで選択されません。将来的には確定前であってもインテリセンスが動作するようにしたいものです。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;ところで、「&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;でなくても日本語をクラス名に使用できるようにすることはできるのでは？」という疑問を持つ方もあるかもしれませんが、文字の検証や型安全性、さらにはセキュリティを考えたとき、どの言語のオペレーティングシステム上であっても一意に決まる文字でなければ、クラス名などに使用することはできません。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;また、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;の本来の目的を忘れてはいけません。当然ながら、日本語が使えるというだけでなく、今まで&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;shift-jis&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;では使用できなかった文字も使用できるようになります。「ゥ」もとい「&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&amp;#169;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;」もきちんと表示できるようになりますね。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;ここまでコンパイラには&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;で渡っているという前提で書いてきたので、完全に（ライブラリも含めて）内部的な話でした。エンコーディングは渡す側－受け取る側、書き出す側－読み込む側の間の決め事なので、この決め事がしっかり決められている内部では、すんなり&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;Unicode&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;へ移行できました。さて、問題はソースファイルなど、外の世界とのやり取りです。過去との互換性、他のツールとの互換性などなど考えなければならないことがいっぱい。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 'ＭＳ Ｐゴシック'; mso-hansi-font-family: 'ＭＳ 明朝'; mso-ascii-font-family: Verdana; mso-bidi-font-size: 10.0pt"&gt;本当に書きたかったのは、これからなのですが、ん～、なにやら上司が呼んでいます。という訳で、今週はここまで。続きは近いうちに（できるだけ、来週書けるように頑張ります）。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0mm 0mm 0pt; TEXT-ALIGN: left" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-hansi-font-family: 'ＭＳ 明朝'; mso-fareast-font-family: 'ＭＳ Ｐゴシック'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://www.exconn.net/Blogs/team01/aggbug/2441.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>