मैं वर्तमान में यदि संभव हो तो उन्हें अपने समकक्ष ASCII चरित्र में बदलकर एक यूटीएफ -8 स्ट्रिंग से सभी विशेष पात्रों और उच्चारणों को हटाने की कोशिश कर रहा हूं।PHP के आइकनव को सेटलोकेल की आवश्यकता क्यों है?
तो मैं बस इस कोड का उपयोग कर रहा:
$result = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $input);
समस्या यह है कि उदाहरण के लिए शब्द "शुरुआत" "पहली फिल्म" के बदले "dbut" में बदल जाता है है। यह काम करने के लिए, मैं setlocale के लिए एक कॉल को जोड़ने के लिए, इस तरह की जरूरत है:
setlocale(LC_ALL, 'en_US.UTF8');
$result = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $input);
और मैं क्यों समझ में नहीं आता। मैंने सोचा कि यूटीएफ -8 और एएससीआईआई हमेशा समान थे, जो भी लोकेल आप उपयोग करते हैं।
संपादित करें: मैं यह मतलब नहीं था UTF-8 ASCII के बराबर होती है, मैं मतलब UTF-8 हमेशा UTF-8 के बराबर होती है और ASCII हमेशा ASCII के बराबर होती है
एएससीआईआई और यूटीएफ -8 एक जैसा है। यूटीएफ -8 परिमाण के आदेश से बड़ा है। – NikiC