Cách kiểm tra chuỗi được mã hóa hay không trong php?
Ngày đăng:
04/01/2023
Trả lời:
0
Lượt xem:
93
A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #5 Show A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #6 A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #7 A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #8 A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #9 A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #0 Hàm A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 mã hóa URI bằng cách thay thế từng phiên bản của các ký tự nhất định bằng một, hai, ba hoặc bốn chuỗi thoát đại diện cho mã hóa UTF-8 của ký tự (sẽ chỉ có bốn chuỗi thoát cho các ký tự bao gồm hai ký tự thay thế). So với A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #2, hàm này mã hóa ít ký tự hơn, bảo toàn những ký tự nằm trong cú pháp URI
A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #3 Một chuỗi được mã hóa dưới dạng URI Chuỗi mới đại diện cho chuỗi đã cung cấp được mã hóa dưới dạng URI A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #4 Bị ném nếu A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #3 chứa một A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 là một thuộc tính chức năng của đối tượng toàn cầu Hàm A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 thoát các ký tự theo đơn vị mã UTF-8, với mỗi octet được mã hóa ở định dạng A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #3, được đệm bên trái bằng 0 nếu cần. Bởi vì các ký tự thay thế đơn độc trong UTF-16 không mã hóa bất kỳ ký tự Unicode hợp lệ nào, nên chúng khiến A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 đưa ra một A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #4 A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 thoát khỏi tất cả các ký tự ngoại trừ A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , # Các ký tự trên dòng thứ hai là các ký tự có thể là một phần của cú pháp URI và chỉ được thoát bởi A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #2. Cả A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 và A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #2 đều không mã hóa các ký tự http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor0, được gọi là "dấu hiệu không được đặt trước", không có mục đích dành riêng nhưng được cho phép trong URI "nguyên trạng". (Xem RFC2396) Hàm A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 không mã hóa các ký tự có ý nghĩa đặc biệt (ký tự dành riêng) cho URI. Ví dụ sau hiển thị tất cả các phần mà một URI có thể chứa. Lưu ý cách một số ký tự được sử dụng để biểu thị ý nghĩa đặc biệt http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 khác với A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #2 như sau
Lưu ý rằng bản thân A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #1 không thể tạo thành các yêu cầu HTTP http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor5 và http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor6 phù hợp, chẳng hạn như đối với http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor7, vì http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor8, http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor9 và 0 không được mã hóa, được coi là các ký tự đặc biệt trong các yêu cầu http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor5 và http://username:[email protected]:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor6. Tuy nhiên, A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #2 mã hóa các ký tự này Một A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #4 sẽ bị ném nếu một người cố gắng mã hóa một đại lượng thay thế không phải là một phần của cặp cao-thấp. Ví dụ A–Z a–z 0–9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #4 RFC3986 gần đây hơn tạo dấu ngoặc vuông dành riêng (cho IPv6) và do đó không được mã hóa khi tạo thành thứ gì đó có thể là một phần của URL (chẳng hạn như máy chủ lưu trữ). Nó cũng dự trữ. , ', (, ) và *, mặc dù các ký tự này không có cách sử dụng phân tách URI chính thức. Hàm sau mã hóa một chuỗi cho định dạng URL tuân thủ RFC3986 Cách kiểm tra xem một chuỗi có phải là UTF khôngBạn có thể sử dụng @ và kiểm tra độ dài của chuỗi trả về . strlen($string) === strlen(@iconv('UTF-8', 'UTF-8//IGNORE', $string));
Chuỗi được mã hóa như thế nào?Vì vậy, mỗi chuỗi chỉ là một chuỗi các điểm mã Unicode. Để lưu trữ hiệu quả các chuỗi này, chuỗi điểm mã được chuyển đổi thành một tập hợp byte . Quá trình này được gọi là mã hóa. Có nhiều mã hóa khác nhau xử lý một chuỗi khác nhau.
Cách chuyển đổi chuỗi thành UTFHàm utf8_encode() là một hàm sẵn có trong PHP được sử dụng để mã hóa chuỗi ISO-8859-1 thành UTF-8. Unicode đã được phát triển để mô tả tất cả các ký tự có thể có của mọi ngôn ngữ và bao gồm rất nhiều ký hiệu với một số duy nhất cho mỗi ký hiệu/ký tự.
Cách đặt UTFPHP UTF-8 Encoding – sửa đổi php của bạn. Điều đầu tiên bạn cần làm là sửa đổi php của bạn. ini để sử dụng UTF-8 làm bộ ký tự mặc định. default_charset = "utf-8"; (Lưu ý. Sau đó, bạn có thể sử dụng phpinfo() để xác minh rằng điều này đã được đặt đúng cách. ) |