2012-04-27 13 views
13

私はテキストのデコードに取り組んでいます。私は文字の文字コードを見つけようとしていますが、-と誤解されることはありません。私はうまくいっていない。誰もそれを変換する方法を知っていますか?ウィキから' - 'のASCII文字コードとは何ですか?

+0

「この文字をデコードする」とはどういう意味ですか?ソーステキストにはどのようなエンコーディングが使用され、結果にはどのエンコーディングを使用する必要がありますか? – raina77ow

+0

@ raina77ow:私はアスキーテーブル –

+0

でこの文字の番号を見つけようとしています。したがって、そのコードはどのエンコードが使用されているかによって異なります。例えば、Latin-1のテキストでは、 'mdash'は数字151で表されます。 – raina77ow

答えて

20

引用(Em dash

実際全角ダッシュが使用できない-として設定-ASCII文字ダブル( " - ")であるか、トリプルハイフンマイナス( "---" ) 使用されている。 Unicodeでは、emダッシュはU + 2014(10進数8212)です。

Emダッシュ文字はASCII文字セットの一部ではありません。

+0

だから私は '' char check = s.charAt(0) '、s =' - 'のときは何を得ますか? 'int check = s.charAt(0)'を実行すると、私は8212を得るでしょうか? –

+3

@AdamShそれはあなたがデコードを行うために使用しているものによって異なります。あなたはコードを投稿していないので、伝えるのは難しいです。一般的に、デコーダが何かに遭遇した場合、デコードできません。疑問符で置き換えられます。 – vcsjones

+0

例外をスローするか、より大きな整数を使用して8212を返します。 – Li0liQ

5

は、Em Dashとして知られています。文字コードは\u2014です。 ASCII文字ではないため、ASCII文字セットを使用してそれをデコードすることはできません。代わりにUTF8を使用したいと思うでしょう。

+0

JavaScript文字列はUnicode対応ですが、内部的にはUTF-8ではなくUCS-2を使用します。いずれにせよ、それを表現するエンコーディングを知る必要はありません。あなたが言ったように、 '\ u2014'という形式でUnicodeコードポイントと照合することができます。 – thomasrutter

2

この文字はASCIIではなく、通常はUTF-8でエンコードされたUnicodeでのみ存在します。

UTF-8では、2バイトまたは3バイトのいずれも有効なASCIIコードではなく、2バイトまたは3バイトのシーケンスでエンコードされます(すべてがASCII範囲外です)。

1人はあなたの質問に部分的にしか答えていないと考えていますが、もしそうなら、おそらくあなたの質問が誤って一部しか尋ねられていない可能性があります。詳細については、より詳細な質問を広げることができます。