8

Tôi đang tìm phương thức hoặc có thể là bảng chuyển đổi biết cách chuyển đổi Umlauts và ký tự đặc biệt thành đại diện có khả năng nhất của chúng trong ascii.Chuyển đổi ký tự đặc biệt (ví dụ: Umlaut) thành đại diện có khả năng nhất trong ascii

Ví dụ:

Ärger = aerger 
Bôhme = bohme 
Søren = soeren 
pjérà = pjera 

Bất cứ ai bất kỳ ý tưởng?

Cập nhật: Ngoài chấp nhận trả lời tốt, tôi cũng tìm thấy PECLs Normalizer là khá thú vị, mặc dù tôi không thể sử dụng nó do máy chủ không có nó và không được thay đổi cho tôi.

Ngoài ra, hãy kiểm tra this Question nếu Câu trả lời ở đây không giúp bạn đủ.

+0

trả lời là: echo iconv ('UTF-8', 'ASCII// TRANSLIT ', $ string); – Palantir

+0

Ồ, tôi không tìm thấy câu trả lời trùng lặp đó. Chính sách là gì? Tôi có xóa câu hỏi của tôi ngay bây giờ hoặc liên kết với câu hỏi khác không? –

+1

Chào mừng bạn đến với Stack Overflow. Câu hỏi này đã được liên kết với câu hỏi khác và nếu đủ người kiểm duyệt (năm) bỏ phiếu để đóng nó, nó sẽ tự động bị đóng như trùng lặp. Tôi đoán bạn không cần phải làm bất cứ điều gì đặc biệt ngay bây giờ. – Palantir

Trả lời

15

tôi thấy iconv hoàn toàn không đáng tin cậy, và tôi không thích giải pháp preg_match và mảng lớn ... nên cách yêu thích của tôi là ...

function toASCII($str) 
    { 
     return strtr(utf8_decode($str), 
      utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'), 
      'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy'); 
    } 
+1

Mặc dù bạn có thể cần phải sử dụng mảng từ "ø" = "oe", không phải "o": P – neokio

+0

Trid nó, hoạt động thực sự tốt! Cảm ơn rất nhiều! –

Các vấn đề liên quan