sql >> Databáze >  >> RDS >> Oracle

Proč mohu použít znak, který není součástí znakové sady (windows-1252)?

Ve skutečnosti nepoužíváte znaky mimo znakovou sadu stránky a databáze.

Protože je stránka kódována systémem Windows-1252, zadáte-li Alt+251 do pole formuláře a poté odešlete data, prohlížeč oznámí:

"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."

A pokud si všimnete, toto je 7 různých znaků, které jsou ve znakové sadě windows-1252.

Pokud by byla stránka zakódována pomocí vícebajtové znakové sady, prohlížeč by poslal zpět něco, co se považuje za 1 znak.

Jak se tedy můžete dotázat?

 select * from tab where field like '%√%'

To, co máte, je znak html symbolu druhé odmocniny:https://www .google.com/#q=html+znak+kódy

Aktualizace:

Zde je velmi dobrý článek vysvětlující, co se děje: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...."

Také když zadáte Alt+251 na počítači s Windows, vloží se symbol druhé odmocniny, což je v Unicode U-221A.

Stisknutí Alt+251 je jako makro klávesnice pro vložení Unicode, je to U-221A.




  1. Odstraňte duplicitní řádky z tabulky pomocí spojení

  2. Jaký zdroj sdružených dat bych měl použít pro Spring 3.1.0, Hibernate 4.0.1.Final a MySQL 5.1?

  3. MySQL třídit podle počtu výskytů

  4. textové vyhledávání objektů Oracle