का उपयोग कर iconv()
का उपयोग करते हुए यूटीएफ -8 स्ट्रिंग को यूटीएफ -8 में कनवर्ट करना एक परिणाम उत्पन्न करता है जहां अवैध यूटीएफ -8 वर्ण गिराए जाते हैं।
इसलिए, आप आइकनव ऑपरेशन से पहले और बाद में स्ट्रिंग की लंबाई की तुलना करके टूटे हुए चरित्र का पता लगा सकते हैं। यदि वे भिन्न होते हैं, तो उनमें एक टूटा चरित्र होता है।
टेस्ट मामले (सुनिश्चित करें कि आप UTF-8 के रूप में फाइल को सेव कर लें):
<?php
header("Content-type: text/html; charset=utf-8");
$teststring = "Düsseldorf";
// Deliberately create broken string
// by encoding the original string as ISO-8859-1
$teststring_broken = utf8_decode($teststring);
echo "Broken string: ".$teststring_broken ;
echo "<br>";
$teststring_converted = iconv("UTF-8", "UTF-8//IGNORE", $teststring_broken);
echo $teststring_converted;
echo "<br>";
if (strlen($teststring_converted) != strlen($teststring_broken ))
echo "The string contained an invalid character";
सिद्धांत रूप में, आप //IGNORE
छोड़ सकता है और बस एक असफल (खाली) iconv
ऑपरेशन के लिए परीक्षण, लेकिन अन्य हो सकता है आइकन अमान्य वर्णों की तुलना में असफल होने के कारण ... मुझे नहीं पता। मैं तुलना विधि का उपयोग करूंगा।
स्रोत
2011-01-03 12:24:21
बजाय –
दुर्भाग्य से नहीं की कोशिश करो। – James
यह गलत दृष्टिकोण है। आप जो कर रहे हैं उसके बारे में आपको और जानकारी जोड़नी चाहिए, आप –