1

文字セットがどのように機能するかを理解するのに少し助けが必要です。この質問は、 UTF-8 の代わりに windows-1252 を使用することに関する問題からの続きです。

私はテストColdFusionサイトを使用しています...

<CFHEADER NAME="Content-Type" value="text/html; charset=windows-1252">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />

およびテスト Oracle DB を使用して...

NLS_CHARACTERSET: WE8MSWIN1252
NLS_NCHAR_CHARACTERSET: AL16UTF16

windows-1252 charset によると、平方根記号 (alt+251) はありません: . DB にある場合は、次のように保存されます&#8730;。文字セットの一部でさえない場合、それを入力して保存し、クエリして表示するにはどうすればよいですか? 文字セットによると、10 進数の 251 は次のとおりです。Hex:FB | û | 00FB | LATIN SMALL LETTER U WITH CIRCUMFLEX

4

1 に答える 1

3

ページとデータベースの文字セット以外の文字を実際に使用していません。

このページは Windows-1252 でエンコードされているため、フォーム フィールドに Alt+251 を入力してデータを投稿すると、ブラウザーは次のように表示します。

"Hey this char is not apart of windows-1252 and I need to only send back data
 which is in windows-1252, so I will do the best I can and send back the 
 html character code of char &#8730;  -- oh well, I wish I could send back
 1 character, since I cannot I will send back 7."

お気付きのように、これは windows-1252 文字セットにある 7 つの異なる文字です。

ページがマルチバイト文字セットでエンコードされていた場合、ブラウザは 1 文字と見なされる何かを返します。

では、どうすればそれを照会できますか?

 select * from tab where field like '%&#8730;%'

あなたが持っているのは、平方根記号の html 文字です: https://www.google.com/#q=html+character+codes

アップデート:

これは何が起こっているかを説明する非常に良い記事です: http://htmlpurifier.org/docs/enduser-utf8.html

 "...once you start adding characters outside of your encoding... 
 [the browser might] replace the character with a character entity reference...."

また、Windows マシンで Alt+251 を入力すると、Unicode では U-221A である平方根記号が挿入されます。

Alt+251 を押すのは、U-221A である Unicode を挿入するキーボード マクロのようなものです。

于 2014-02-01T21:51:53.690 に答える