sql >> データベース >  >> RDS >> Oracle

文字セット(windows-1252)の一部ではない文字を使用できるのはなぜですか?

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

    ページは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 √  -- 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 '%√%'
    

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

    更新:

    何が起こっているのかを説明する非常に優れた記事があります: http://htmlpurifier.org/docs/エンドユーザー-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を押すことは、Unicodeを挿入するためのキーボードマクロのようなもので、U-221Aです。




    1. OracleSQLDeveloperのDB2データベース

    2. 外部キー制約をバイパスするmysqlを強制的にドロップします

    3. SQL Server2014CTP1でのパーティションレベルのオンラインインデックス操作の調査

    4. MYSQL-リクエストでNOW()とParisTimeZoneの日付を比較します