2011-07-15 11 views
12

右シングルクォーテーションマーク(U + 2019) 対 アポストロフィ(U + 0027)右シングルアポストロフィ対アポストロフィ

これら2つの文字の違いは何ですか?

私はCAtlStringを使用してリソースファイルから文字列を読み込み、一部のWindowsインストールではU + 2019を含む文字列を読み込もうとすると失敗しますが、他のWindowsでは動作しますインストール。 U + 2019文字はWordからコピーしたリソースファイルの文字列に表示され、U + 0027は手作業でコード化された文字列に表示されます。なぜLoadString(時には)がこれを脅かすのですか?

答えて

20

これら2つの文字の違いは何ですか?

信頼できる!

名前では、中括弧は引用符としてのみ使用され、直線<は>は省略された文字のインジケータである実際のアポストロフィとしてのみ使用されると考えられます。

しかし、英語の伝統的な組版の練習では、アポストロフィをレンダリングするために常に縮尺を使用しています。個人的に - 私はここにいるかもしれません - 私はこれが好きではありません。これは、より多くの曖昧な読書のために作ることができます。

「彼はチップ 『n』のそれは魚だ」と言われ...」

をアポストロフィはまっすぐそれがどこの引用終了する(わずかに)明確だことで:

とアポストロフィが 'ストレート' であることがより理にかなっている「彼は、N 'チップス '...' それは魚だ' と言いました」省略された文字を示すその目的​​は本質的な方向性を持たないのに対し、引用符は明らかに非対称であるからです。含む文字列をロードしようとしたときにアポストロフィが常に両方に使用されるように、伝統的なASCIIで

、当然のことながら、いくつかのWindowsインストールで

...、何のスマート引用符がない、loadStringはは失敗しますU + 2019が、他のWindowsインストールでも動作します。

ここでは、「ANSI」コードページの恐怖に遭遇しています。これは、異なるWindowsインストールロケールで異なるデフォルトの文字エンコーディングです。したがって、西部地域のマシンでは、リソースを読み込んで日本語のWindowsで読むときとは異なる結果になります。

UTF-8のような単一のグローバルエンコーディングを使用するのではなく、Windowsがさまざまなデフォルトコードページを持つことは非常に残念ですが、今修正するのは時期尚早です。アプリケーション全体をUnicodeアプリケーションとしてコンパイルする場合(LoadStringAではなくLoadStringWを使用します)、スマートな引用符のような非ASCII文字には、より良い対応ができます。

ユニコードアプリケーションに移動できない場合は、ちょっとした問題です。スマート引用符のような非ASCII文字はグローバルに扱うことができないので、そのままのアポストロフィー<'>のようなASCII文字を使用してください。

U + 2019の文字は、私は、Word

からコピーされた私のリソースファイル内の文字列に表示されますはい、Wordは、スマート引用符を入力するすべてのアポストロフィを置き換え迷惑なオートコレクト機能を持っています。これは、コードを扱っているときには特に望ましくありません。ここで<'>はプログラムを中断します。それは見積もりの​​所望の方向を正確に推測することができないので、普通の古い英語についても間違っている。 (例えば、「魚のチップ」のアポストロフィの1つが間違った方向になる)

私はスマート引用符で自動置換機能をオフにすることをお勧めします。賢明な引用符が必要な場合は、それを意図的に入力する方がよいでしょう。残念なことに、ほとんどのキーボードレイアウトで入力するのは不便で、しばしばあいまいなAlt +数字のシーケンスが必要です。個人的に私はthis oneを使ってAlt + []キーにドロップします。

+0

ファンタスティックな回答 - 非常に徹底!このような詳細な説明をしてくれてありがとう。 – Ian

+0

あなたは間違っていると認識しているだけではありません。 ;)しかし、波紋は歴史的にはより正確で、UTFの推奨文字はアポストロフィとして(残念ながら)です。詳細はこちらをご覧ください:https://www.quora.com/Punctuation-Why-is-the-right-single-quote-U+2019-and-not-the-semantically-distinct-apostrophe-U+0027 - アポストロフィ - 文字のUnicode – stefanct

+0

興味深い関連記事はこちらですhttps://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html – theoutlander

3

歴史的には、一重引用符と二重引用符は、ペア(左)と右(右)になります。

長年にわたり、コンピュータのキャラクタセットは、それぞれの単一の形式を有する限られていました。

現在、Unicodeの出現により、完全なフォームが利用可能ですが、それらのサポートはまだ制限されています。プログラミング言語は依然として単純なフォームを使用しており、完全なフォームは依然として問題を引き起こす可能性があります。

関連する問題