Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dlaczego mogę użyć znaku, który nie jest częścią zestawu znaków (windows-1252)?

Tak naprawdę nie używasz znaków spoza zestawu znaków strony i bazy danych.

Ponieważ strona jest zakodowana w systemie Windows-1252, jeśli wpiszesz Alt+251 w polu formularza, a następnie opublikujesz dane, przeglądarka powie:

"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 jeśli zauważysz, jest to 7 różnych znaków, które znajdują się w zestawie znaków windows-1252.

Gdyby strona została zakodowana za pomocą wielobajtowego zestawu znaków, przeglądarka odesłałaby coś, co jest uważane za 1 znak.

Więc jak możesz o to zapytać?

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

Masz znak html symbolu pierwiastka kwadratowego:https://www .google.com/#q=html+kody+znaków

Aktualizacja:

Oto bardzo dobry artykuł wyjaśniający, co się dzieje: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...."

Również po wprowadzeniu Alt+251 na komputerze z systemem Windows wstawia on symbol pierwiastka kwadratowego, który w Unicode to U-221A.

Naciśnięcie Alt+251 jest jak makro na klawiaturze, aby wstawić Unicode, to jest U-221A.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie tekstu Oracle Fuzzy

  2. Łączenie liczb w wyrażeniu kolumny wirtualnej powoduje wyświetlenie ORA-12899:wartość za duża dla kolumny

  3. Oracle wybierz wartość do pierwszego miejsca lub końca wiersza

  4. Tworzenie wyzwalacza w Oracle Express

  5. Błąd składni podczas próby wstawienia wielu wierszy w SQL?