Hướng dẫn php remove non utf-8 characters - php xóa các ký tự không phải utf-8

Đã hỏi 13 năm, 2 tháng trước 13 years, 2 months ago

Đã xem 227k lần 227k times

Tôi đang gặp sự cố với việc loại bỏ các ký tự không phải UTF8 khỏi chuỗi, không hiển thị đúng. Các ký tự giống như 0x97 0x61 0x6c 0x6f [biểu diễn hex]

Cách tốt nhất để loại bỏ chúng là gì? Biểu thức chính quy hay cái gì khác?

hỏi ngày 9 tháng 9 năm 2009 lúc 18:33Sep 9, 2009 at 18:33

Dan Sosedoffdan SosesoffDan Sosedoff

2.8115 huy hiệu vàng27 Huy hiệu bạc34 Huy hiệu đồng5 gold badges27 silver badges34 bronze badges

3

Nếu bạn áp dụng

echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["FÃÂédÃÂération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
5 cho chuỗi UTF8 đã được trả về đầu ra UTF8 bị cắt xén.

Tôi đã thực hiện một chức năng giải quyết tất cả các vấn đề này. Nó được gọi là

echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["FÃÂédÃÂération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
6.

Bạn không cần biết mã hóa chuỗi của bạn là gì. Nó có thể là Latin1 [ISO8859-1], Windows-1252 hoặc UTF8 hoặc chuỗi có thể có hỗn hợp chúng.

echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["FÃÂédÃÂération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
6 sẽ chuyển đổi mọi thứ thành UTF8.

Tôi đã làm điều đó bởi vì một dịch vụ đã cho tôi một nguồn cấp dữ liệu tất cả đều bị rối, trộn các mã hóa đó trong cùng một chuỗi.

Usage:

require_once['Encoding.php']; 
use \ForceUTF8\Encoding;  // It's namespaced now.

$utf8_string = Encoding::toUTF8[$mixed_string];

$latin1_string = Encoding::toLatin1[$mixed_string];

Tôi đã bao gồm một chức năng khác, mã hóa :: fixutf8 [], sẽ sửa chữa mọi chuỗi UTF8 trông có vẻ bị cắt xén sản phẩm đã được mã hóa thành UTF8 nhiều lần.

Usage:

require_once['Encoding.php']; 
use \ForceUTF8\Encoding;  // It's namespaced now.

$utf8_string = Encoding::fixUTF8[$garbled_utf8_string];

Examples:

echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];
echo Encoding::fixUTF8["FÃÂédÃÂération Camerounaise de Football"];
echo Encoding::fixUTF8["Fédération Camerounaise de Football"];

sẽ đầu ra:

Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football

Download:

//github.com/neitanod/forceutf8

Jason Aller

3,48728 Huy hiệu vàng42 Huy hiệu bạc38 Huy hiệu Đồng28 gold badges42 silver badges38 bronze badges

Đã trả lời ngày 19 tháng 8 năm 2010 lúc 11:44Aug 19, 2010 at 11:44

8

Sử dụng phương pháp Regex:

$regex = 

Bài Viết Liên Quan

Chủ Đề