दिलचस्प पोस्ट
कंटेट करने योग्य तत्व (div) में कैरेट (कर्सर) की स्थिति कैसे सेट करें? क्या मैं गिट में हटाने के बाद एक शाखा पुनः प्राप्त कर सकता हूं? अपने माता-पिता की 100% ऊँचाई कैसे तैयार करें? क्यों सूची की तरह "सुरक्षित" पाने की कोई सूची नहीं है? विजुअल स्टूडियो 2012 __सीप्लसप्लस और सी ++ 11 पायथन में फ़ैक्टोरियल के लिए फ़ंक्शन क्वेरी द्वारा प्रत्येक पंक्ति के लिए एक बार संग्रहीत प्रक्रिया को कैसे निष्पादित किया जाता है? रेल के साथ एक WHERE खंड में IN की बजाय किसी को कैसे उपयोग करें? Android SQLite उदाहरण पायथन का उपयोग कर विंडोज में फ़ोल्डर अनुमतियाँ सेट करना TypeError: अनुक्रम आइटम 0: अपेक्षित स्ट्रिंग, int मिला एंड्रॉइड वेबवीउओ रिक्त / सफेद रेंडर करता है, सीएसएस परिवर्तन या एचटीएमएल बदलाव पर अपडेट नहीं होता है, एनीमेशन तड़का हुआ होता है IEnumerable <T> के रूप में एक ही आइटम पास करना कैसे UINavigationBar 1px नीचे पंक्ति छिपाने के लिए जावास्क्रिप्ट: कैरेट को आखिरी चरित्र में ले जाएं

PHP: UTF-8 स्ट्रिंग में निकटतम 7-बिट ASCII समकक्ष के साथ umlauts बदलें

मैं क्या करना चाहता हूं, स्ट्रिंग से सभी लहजे और umlauts को निकालने के लिए, "लार्म" को "लार्म" या "एंड्रॉ" में "औररे" में बदलना है। मैंने जो करने की कोशिश की थी वह स्ट्रिंग को utf8_decode करना था और फिर उस पर स्ट्र्रट का उपयोग किया गया था, लेकिन जब से मेरी स्रोत फ़ाइल को यूटीएफ -8 फ़ाइल के रूप में सहेजा जाता है, तो मैं सभी umlauts के लिए आईएसओ -8859-15 वर्णों को नहीं दर्ज कर सकता हूं- संपादक सम्मिलित करता है UTF-8 वर्ण

जाहिर है इस के लिए एक समाधान है कि एक आईएसओ -8859-15 फाइल शामिल है, लेकिन एक और आवश्यकता शामिल करने के लिए एक बेहतर तरीका होना चाहिए शामिल होगा?

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

अद्यतनः शायद मैं कुछ करने की कोशिश कर रहा था: मैं वास्तव में umlauts को हटाना नहीं चाहता, लेकिन उन्हें अपने निकटतम "एक अक्षर एएससीआईआई" समकक्ष के साथ बदलने के लिए

वेब के समाधान से एकत्रित समाधान "PHP: UTF-8 स्ट्रिंग में निकटतम 7-बिट ASCII समकक्ष के साथ umlauts बदलें"

 iconv("utf-8","ascii//TRANSLIT",$input); 

विस्तारित उदाहरण

एक छोटी सी चाल है जिसके लिए स्थानीय भाषा सेट करने या विशाल अनुवाद तालिकाओं की आवश्यकता नहीं होती है:

 function Unaccent($string) { if (strpos($string = htmlentities($string, ENT_QUOTES, 'UTF-8'), '&') !== false) { $string = html_entity_decode(preg_replace('~&([az]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|tilde|uml);~i', '$1', $string), ENT_QUOTES, 'UTF-8'); } return $string; } 

इसके लिए ठीक से काम करने की एकमात्र आवश्यकता आपकी फ़ाइलों को यूटीएफ -8 में सहेजने के लिए है (जैसा कि आपको पहले ही होना चाहिए)।

आप यह भी कोशिश कर सकते हैं

 $string = "Fóø Bår"; $transliterator = Transliterator::createFromRules(':: Any-Latin; :: Latin-ASCII; :: NFD; :: [:Nonspacing Mark:] Remove; :: Lower(); :: NFC;', Transliterator::FORWARD); echo $normalized = $transliterator->transliterate($string); 

लेकिन आपको http://php.net/manual/en/book.intl.php उपलब्ध होना चाहिए

ठीक है, खुद को एक स्पष्ट हल मिल गया, लेकिन यह सबसे अच्छा प्रदर्शन के विषय में नहीं है …

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

अरबी और फ़ारसी उपयोगकर्ताओं के लिए मैं डायैरिटिक्स को हटाने का सुझाव देता हूं:

  $diacritics = array('َ','ِ','ً','ٌ','ٍ','ّ','ْ','ـ'); $search_txt = str_replace($diacritics, '', $diacritics); 

अरबी कीबोर्ड में टाइपिंग डायएक्रिटिक्स के लिए आप इस आस्सी (वे कोड ऐस्की नहीं यूनिकोड) का उपयोग कर सकते हैं, विंडोज़ संपादकों में डायरेक्ट्रिटिक टाइपिंग डायरेक्ट्रिटिक सीधे या ऑल्ट + (डायकेट्रिक वर्ण का कोड टाइप करें) इस कोड

(0243) (0246) (0245) (0240) (0242) (0241) (0250) (0248) (0220)

मुझे पता चला कि यह एक फ्रेंच और जर्मन में सबसे सुसंगत परिणाम देता है मेटा टैग को utf-8 सेट करने के साथ, मैंने इसे किसी फ़ंक्शन में स्थानांतरित करने के लिए शब्दों की एक सरणी से एक पंक्ति लौटा दी है और यह सही काम करता है।

 htmlentities ( $line, ENT_SUBSTITUTE , 'utf-8' )