Làm cách nào để xóa ký tự Unicode trong PHP?

Mẹo. Để chuyển đổi các thực thể HTML đặc biệt trở lại thành các ký tự, hãy sử dụng hàm htmlspecialchars_decode()


cú pháp

htmlký tự đặc biệt(chuỗi,cờ,bộ ký tự,double_encode)

Giá trị tham số

Tham sốChuỗi mô tảBắt buộc. Chỉ định chuỗi để convertflagsOptional. Chỉ định cách xử lý dấu ngoặc kép, mã hóa không hợp lệ và loại tài liệu được sử dụng

Các kiểu trích dẫn có sẵn là

  • ENT_COMPAT - Mặc định. Chỉ mã hóa dấu ngoặc kép
  • ENT_QUOTES - Mã hóa dấu ngoặc kép và dấu nháy đơn
  • ENT_NOQUOTES - Không mã hóa bất kỳ trích dẫn nào

mã hóa không hợp lệ

  • ENT_IGNORE - Bỏ qua mã hóa không hợp lệ thay vì để hàm trả về chuỗi rỗng. Nên tránh, vì nó có thể có ý nghĩa bảo mật
  • ENT_SUBSTITUTE - Thay thế mã hóa không hợp lệ cho một bộ ký tự được chỉ định bằng Ký tự thay thế Unicode U+FFFD (UTF-8) hoặc &#FFFD;
  • ENT_DISALLOWED - Thay thế các điểm mã không hợp lệ trong loại tài liệu đã chỉ định bằng Ký tự thay thế Unicode U+FFFD (UTF-8) hoặc &#FFFD;

Các cờ bổ sung để chỉ định loại tài liệu đã sử dụng

  • ENT_HTML401 - Mặc định. Xử lý mã dưới dạng HTML 4. 01
  • ENT_HTML5 - Xử lý mã dưới dạng HTML 5
  • ENT_XML1 - Xử lý mã dưới dạng XML 1
  • ENT_XHTML - Xử lý mã dưới dạng XHTML
bộ ký tựTùy chọn. Một chuỗi chỉ định bộ ký tự nào sẽ sử dụng

Các giá trị được phép là

  • UTF-8 - Mặc định. Unicode 8 bit tương thích nhiều byte tương thích ASCII
  • ISO-8859-1 - Tây Âu
  • ISO-8859-15 - Tây Âu (thêm ký hiệu Euro + chữ cái tiếng Pháp và tiếng Phần Lan bị thiếu trong ISO-8859-1)
  • cp866 - Bộ ký tự Cyrillic dành riêng cho DOS
  • cp1251 - Bộ ký tự Cyrillic dành riêng cho Windows
  • cp1252 - Bộ ký tự dành riêng cho Windows cho Tây Âu
  • KOI8-R - Nga
  • BIG5 - Tiếng Trung phồn thể, chủ yếu dùng ở Đài Loan
  • GB2312 - Tiếng Trung giản thể, bộ ký tự chuẩn quốc gia
  • BIG5-HKSCS - Big5 với phần mở rộng Hồng Kông
  • Shift_JIS - Tiếng Nhật
  • EUC-JP - Tiếng Nhật
  • MacRoman - Bộ ký tự được Mac OS sử dụng

Ghi chú. Các bộ ký tự không được nhận dạng sẽ bị bỏ qua và được thay thế bằng ISO-8859-1 trong các phiên bản trước PHP 5. 4. Kể từ PHP 5. 4, nó sẽ bị bỏ qua và được thay thế bằng UTF-8

double_encodeTùy chọn. Một giá trị boolean chỉ định có mã hóa các thực thể html hiện có hay không
  • ĐÚNG - Mặc định. Sẽ chuyển đổi mọi thứ
  • SAI - Sẽ không mã hóa các thực thể html hiện có


chi tiết kỹ thuật

Giá trị trả về. Trả về chuỗi đã chuyển đổi

Nếu chuỗi chứa mã hóa không hợp lệ, nó sẽ trả về một chuỗi trống, trừ khi cờ ENT_IGNORE hoặc ENT_SUBSTITUTE được đặt

Nếu substitute_character được đặt, nó trả về true nếu thành công, nếu không thì trả về false. Nếu substitute_character không được đặt, nó sẽ trả về cài đặt hiện tại

Correction to function converting utf82iso88592 and iso88592tutf8.
Janusz forgot about "ń", and "ż" exchanged from "ź" here and there.

GTo

function utf82iso88592($tekscik) {
     $tekscik = str_replace("\xC4\x85", "ą", $tekscik);
     $tekscik = str_replace("\xC4\x84", 'Ą', $tekscik);
     $tekscik = str_replace("\xC4\x87", 'ć', $tekscik);
     $tekscik = str_replace("\xC4\x86", 'Ć', $tekscik);
     $tekscik = str_replace("\xC4\x99", 'ę', $tekscik);
     $tekscik = str_replace("\xC4\x98", 'Ę', $tekscik);
     $tekscik = str_replace("\xC5\x82", 'ł', $tekscik);
     $tekscik = str_replace("\xC5\x81", 'Ł', $tekscik);
     $tekscik = str_replace("\xC5\x84", 'ń', $tekscik);
     $tekscik = str_replace("\xC5\x83", 'Ń', $tekscik);
     $tekscik = str_replace("\xC3\xB3", '?', $tekscik);
     $tekscik = str_replace("\xC3\x93", '?', $tekscik);
     $tekscik = str_replace("\xC5\x9B", 'ś', $tekscik);
     $tekscik = str_replace("\xC5\x9A", 'Ś', $tekscik);
     $tekscik = str_replace("\xC5\xBC", 'ż', $tekscik);
     $tekscik = str_replace("\xC5\xBB", 'Ż', $tekscik);
     $tekscik = str_replace("\xC5\xBA", 'ź', $tekscik);
     $tekscik = str_replace("\xC5\xB9", 'Ź', $tekscik);
     return $tekscik;
} // utf82iso88592

function iso885922utf8($tekscik) {
     $tekscik = str_replace("ą", "\xC4\x85", $tekscik);
     $tekscik = str_replace('Ą', "\xC4\x84", $tekscik);
     $tekscik = str_replace('ć', "\xC4\x87", $tekscik);
     $tekscik = str_replace('Ć', "\xC4\x86", $tekscik);
     $tekscik = str_replace('ę', "\xC4\x99", $tekscik);
     $tekscik = str_replace('Ę', "\xC4\x98", $tekscik);
     $tekscik = str_replace('ł', "\xC5\x82", $tekscik);
     $tekscik = str_replace('Ł', "\xC5\x81", $tekscik);
     $tekscik = str_replace('ń', "\xC5\x84", $tekscik);
     $tekscik = str_replace('Ń',"\xC5\x83", $tekscik);
     $tekscik = str_replace('?', "\xC3\xB3", $tekscik);
     $tekscik = str_replace('?', "\xC3\x93", $tekscik);
     $tekscik = str_replace('ś', "\xC5\x9B", $tekscik);
     $tekscik = str_replace('Ś', "\xC5\x9A", $tekscik);
     $tekscik = str_replace('ż', "\xC5\xBC", $tekscik);
     $tekscik = str_replace('Ż', "\xC5\xBB", $tekscik);
     $tekscik = str_replace('ź', "\xC5\xBA", $tekscik);
     $tekscik = str_replace('Ź', "\xC5\xB9", $tekscik);
     return $tekscik;
} // iso885922utf8

Làm cách nào để xóa khối Unicode trong PHP?

Vì mục đích của tôi, tôi không phải làm việc với các ký tự Unicode, vì vậy một trong những giải pháp tốt nhất cho mục đích của tôi là loại bỏ tất cả các ký tự không phải ASCII khỏi chuỗi đầu vào. Điều đó có thể được thực hiện với mã preg_replace này. $result = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $string);

Làm cách nào để xóa các ký tự 8 không phải UTF trong PHP?

Bạn có thể sử dụng mbstring. $text = mb_convert_encoding($text, 'UTF-8', 'UTF-8');. sẽ xóa các ký tự không hợp lệ. .
nó là ASCII và thậm chí không gần với những gì câu hỏi muốn. .
Cái này đã hoạt động. .
Tôi thích cái này, nhưng hãy sử dụng mb_str_split() và mb_ord() để lấy đúng CharNo

Làm cách nào để loại bỏ các ký tự đặc biệt trong PHP?

Điều này sẽ làm những gì bạn đang tìm kiếm. chức năng sạch($string) { $string = str_replace(' ', '-', $string); . trả về preg_replace('/[^A-Za-z0-9\-]/', '', $string); . }

Làm cách nào để xóa biểu tượng trong PHP?

Một hàm hữu ích có thể dùng để xóa các ký tự đặc biệt khỏi chuỗi là hàm str_replace() . Chuỗi trống phải được sử dụng cho ký tự thay thế trong hàm này để xóa ký tự đã chỉ định. Cú pháp của chức năng này được đưa ra dưới đây. Hàm str_replace() có thể nhận bốn đối số.