1

ASP.Netページがあり、ユーザーはにテキストを入力TEXTAREAしてサーバーに送信できます。このテキストはデータベースに保存され、winformアプリケーションで表示されます。

winform applicationユーザーがTEXTAREAに入力した正確な文字がプレゼントであることを確認するにはどうすればよいですか。

つまり、たとえば、ユーザーがデンマーク語の文字であるÆ、Ø、Åなどの特殊な言語固有の文字を入力した場合など、潜在的な問題がありますか?
これらの文字のコードはコードページによって異なるため、私が見る限り、TEXTAREAコントロールが入力を表示しているコードページを知る必要があります。または、ここで何かが不足していますか?

私はネット上でこれに関する資料を見つけようとしましたが、この問題に対処するものを見つけるのは困難です。私は通常、送信されたデータを正しく表示するために、サーバーがブラウザーに使用する必要のあるコードページについて説明しているページを見つけました。

しかし、私の質問は逆になります。つまり、クライアントからサーバーへです。

4

2 に答える 2

1

また、 HEBCI: HTML Entity-Based Codepage Inferenceテクニックを使用することもできます.

本質的には、これがどのように機能するかです:

すべてのコードページには独自のフィンガープリントがあります。たとえば、単一のエンティティ「º」ISO-8859-1/Windows-1252 (=BA)、MacRoman(=BC)、および UTF-8 (=C2BA) を区別するために使用できます。

フォームでは、これらのフィンガープリントをエンティティ (°、÷、— など) として含む非表示の入力を追加するだけで、ユーザーがフォームを送信するときに、返された 16 進値をチェックしてフィンガープリント テーブルと比較するだけです。 . これで一致しない場合は、他のフォールバック ソリューションを続行してください。

少し大きな実装は、5 つのコードポイントのみでうまく機能します。

my @fp_ents = qw/deg divide mdash bdquo euro/;
my %fingerprints = (
  "UTF-8" => ['c2b0','c3b7','e28094','e2809e','e282ac'],
  "WINDOWS-1252" => ['b0','f7','97','84','80'],
  "MAC"          => ['a1','d6','d1','e3','db'],
  "MS-HEBR"      => ['b0','ba','97','84','80'],
  "MAC-CYRILLIC" => ['a1','d6','d1','d7',''],
  "MS-GREEK"     => ['b0','','97','84','80'],
  "MAC-IS"       => ['a1','d6','d0','e3',''],
  "MS-CYRL"      => ['b0','','97','84','88'],
  "MS932"        => ['818b','8180','815c','',''],
  "WINDOWS-31J"  => ['818b','8180','815c','',''],
  "WINDOWS-936"  => ['a1e3','a1c2','a1aa','',''],
  "MS_KANJI"     => ['818b','8180','','',''],
  "ISO-8859-15"  => ['b0','f7','','','a4'],
  "ISO-8859-1"   => ['b0','f7','','',''],
  "CSIBM864"     => ['80','dd','','',''],
 );
于 2011-01-24T20:20:24.170 に答える
0

content-type ヘッダーを見て、エンコーディングを確認できます。

詳細については、関連する質問に対するこのSO の回答を参照してください。

于 2010-11-14T22:41:45.243 に答える