Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengapa saya dapat menggunakan karakter yang bukan bagian dari rangkaian karakter (windows-1252)?

Anda tidak benar-benar menggunakan karakter di luar halaman dan rangkaian karakter basis data.

Karena halaman tersebut dikodekan windows-1252, jika Anda memasukkan Alt+251 ke dalam bidang formulir dan kemudian mengeposkan data, browser mengatakan:

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

Dan jika Anda perhatikan, ini adalah 7 karakter berbeda yang ada di charset windows-1252.

Jika halaman telah dikodekan dengan charset multibyte, browser akan mengirim kembali sesuatu yang dianggap 1 karakter.

Jadi bagaimana Anda bisa menanyakannya?

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

Yang Anda miliki adalah karakter html dari simbol akar kuadrat:https://www .google.com/#q=html+character+codes

Pembaruan:

Berikut adalah artikel yang sangat bagus yang menjelaskan apa yang terjadi:http://htmlpurifier.org/docs/ pengguna akhir-utf8.html

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

Juga ketika Anda memasukkan Alt+251 pada mesin windows, ia menyisipkan simbol akar kuadrat yang di Unicode adalah U-221A.

Menekan Alt+251 sama seperti makro keyboard untuk memasukkan Unicode, itu adalah 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. Ubah tabel, tambahkan kolom / ORA-00984:kolom tidak diizinkan di sini PLSQL

  2. Proses Latar Belakang

  3. Memahami segmen Lob (SYS_LOB) di Oracle?

  4. 46 File Kontrol untuk SQL Loader

  5. Buku Putih Pengoptimal 12c lainnya