Hướng dẫn dùng iconv trong PHP

Tôi vẫn không hiểu làm thế nào iconvhoạt động.

Ví dụ,

$string = "Löic & René";
$output = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $string); 

Tôi có,

Thông báo: iconv () [function.iconv]: Đã phát hiện một ký tự không hợp lệ trong chuỗi đầu vào trong ...

$string = "Löic"; hoặc là $string = "René";

Tôi có,

Thông báo: iconv() [function.iconv]: Đã phát hiện một ký tự multibyte không đầy đủ trong chuỗi nhập vào.

Tôi chẳng nhận được gì với $string = "&";

Có hai bộ kết quả đầu ra khác nhau mà tôi cần lưu trữ chúng trong hai cột khác nhau bên trong bảng của cơ sở dữ liệu của tôi,

  1. Tôi cần chuyển đổi Löic & Renésang Loic & Renemục đích url sạch.

  2. Tôi cần giữ nguyên chúng - Löic & RenéLöic & Renésau đó chỉ chuyển đổi chúng htmlentities($string, ENT_QUOTES);khi hiển thị chúng trên trang html của tôi.

Tôi đã thử với một số gợi ý trong php.net dưới đây, nhưng vẫn không hoạt động,

Tôi đã gặp một tình huống mà tôi cần một số ký tự được chuyển ngữ, nhưng những ký tự khác đã bỏ qua (đối với những dấu phụ kỳ lạ như ayn hoặc hamza). Thêm // DỊCH // BỎ QUA dường như là một mẹo nhỏ đối với tôi. Nó chuyển ngữ mọi thứ có thể được chuyển ngữ, nhưng sau đó ném ra những thứ không thể chuyển ngữ được.

Vì thế:

$string = "ʿABBĀSĀBĀD";

echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $string);
// output: [nothing, and you get a notice]

echo iconv('UTF-8', 'ISO-8859-1//IGNORE', $string);
// output: ABBSBD

echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE', $string);
// output: ABBASABAD
// Yay! That's what I wanted!

và khác,

Andries Seutens 07-Nov-2009 07:38
When doing transliteration, you have to make sure that your LC_COLLATE is properly set, otherwise the default POSIX will be used.

To transform "rené" into "rene" we could use the following code snippet:
setlocale(LC_CTYPE, 'nl_BE.utf8');

$string = 'rené';
$string = iconv('UTF-8', 'ASCII//TRANSLIT', $string);

echo $string; // outputs rene

Làm thế nào tôi thực sự có thể giải quyết chúng?

Cảm ơn.

BIÊN TẬP:

Đây là tệp nguồn mà tôi kiểm tra mã,








30 hữu ích 3 bình luận 70k xem chia sẻ