दिलचस्प पोस्ट
ओकेएचटीटीपी से बाइनरी फाइल डाउनलोड करें सिकलाइट डेटाबेस एंड्रॉइड से अंतिम डाला मूल्य प्राप्त करें कुछ सेकंड के बाद डिवाईव छुपाएं आईबीएम वर्कलाइट – पिछले रिलीज को कहाँ मिलेगा लिमिट 10..20 SQL सर्वर में $ (दस्तावेज़) के विभिन्न रूप गिट उन फ़ाइलों की अनदेखी कर रही है जो गिटग्नोर में नहीं हैं मैं मोंगोज़ में कोई दस्तावेज़ कैसे अपडेट / अपग्रेड कर सकता हूं? एक सूची में एक नंबर ढूँढना जेएसओएन डेटा पर jquery लूप का उपयोग $ .each डायनेमिक। क्लासपाथ झंडा क्या करता है? (IntelliJ परियोजना सेटिंग्स) NSString के अंत से ट्रिम रिक्त स्थान कैसे करें: एक mysql InnoDB संग्रहण इंजन को साफ करें? डायनामिक रूप से बनाए गए बटन पर कोड असाइन करें अजाक्स बाइनरी रिस्पांस

MySQL – UTF8 में UTF8 तालिका पर latin1 वर्णों को कनवर्ट करें

केवल आज ही मुझे एहसास हुआ कि मुझे अपने PHP लिपियों में यह याद नहीं था:

mysql_set_charset('utf8'); 

मेरे सभी टेबल InnoDB, collation "utf8_unicode_ci" हैं, और मेरे सभी VARCHAR कॉलम "utf8_unicode_ci" भी हैं। मेरे पास mb_internal_encoding('UTF-8'); मेरे PHP स्क्रिप्ट पर, और मेरी सभी PHP फाइलों को यूटीएफ -8 के रूप में एन्कोड किया गया है

तो, अब तक, हर बार मैं "INSERT" डाइरेक्ट्रिक्स के साथ कुछ, उदाहरण:

 mysql_query('INSERT INTO `table` SET `name`="Jáuò Iñe"'); 

'नाम' की सामग्री इस मामले में होगी: Jáuò Iñe

चूंकि मैंने पीएचपी और माईएसक्यूएल के बीच वर्णसेट तय किया है, इसलिए नए आईएनएसईआरटी अब सही तरीके से भंडारण कर रहे हैं। हालांकि, मैं उन सभी पुरानी पंक्तियों को ठीक करना चाहता हूं जो इस समय "गड़बड़" हैं। मैंने पहले से बहुत सी चीजों की कोशिश की, लेकिन यह हमेशा पहले "अवैध" चरित्र पर तार तोड़ता है। यहां मेरा वर्तमान कोड है:

 $m = mysql_real_escape_string('¿<?php echo "¬<b>\'PHP &aacute; (á)ţăriîş </b>"; ?> ă-ţi abcdd;//;ñç´พดแทฝใจคçăâξβψδπλξξςαยนñ ;'); mysql_set_charset('utf8'); mysql_query('INSERT INTO `table` SET `name`="'.$m.'"'); mysql_set_charset('latin1'); mysql_query('INSERT INTO `table` SET `name`="'.$m.'"'); mysql_set_charset('utf8'); $result = mysql_iquery('SELECT * FROM `table`'); while ($row = mysql_fetch_assoc($result)) { $message = $row['name']; $message = mb_convert_encoding($message, 'ISO-8859-15', 'UTF-8'); //$message = iconv("UTF-8", "ISO-8859-1//IGNORE", $message); mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string($message).'" WHERE `a1`="'.$row['a1'].'"'); } 

यह अपेक्षित वर्णों के साथ "अद्यतन" है, सिवाय इसके कि स्ट्रिंग वर्ण "ă" के बाद छोटा हो जाता है मेरा मतलब है, उस वर्ण और निम्नलिखित वर्ण स्ट्रिंग पर शामिल नहीं हैं।

इसके अलावा, "iconv ()" (जो कि कोड पर टिप्पणी की जाती है) से परीक्षण करता है, यहां तक ​​कि IGNORE और // TRANSLIT के साथ भी ऐसा ही होता है

मैंने आईएसओ -8859-1 और आईएसओ -8859-15 के बीच कई वर्णों का भी परीक्षण किया।

मुझे वास्तव में मदद की ज़रूरत है! धन्यवाद।

वेब के समाधान से एकत्रित समाधान "MySQL – UTF8 में UTF8 तालिका पर latin1 वर्णों को कनवर्ट करें"

आपके द्वारा जो वर्णन किया गया है, ऐसा लगता है कि आपके पास मूल रूप से लैटिन -1 के रूप में संग्रहीत UTF-8 डेटा है और फिर इसे यूटीएफ -8 में सही रूप से परिवर्तित नहीं किया गया है। डेटा वसूली योग्य है; आपको एक MySQL फ़ंक्शन की तरह की आवश्यकता होगी

 convert(cast(convert(name using latin1) as binary) using utf8) 

यह संभव है कि आपको एन्कोडिंग रूपांतरण के दौरान डेटा को कैसे बदला गया, इसके आधार पर आपको आंतरिक रूपांतरण छोड़ना पड़ सकता है।

इस उत्तर के लिए एक घंटे या दो के बारे में खोज करने के बाद। मुझे टाइपो से एक नया टाइपो 3 संस्करण में एक पुराने tt_news db को स्थानांतरित करने की आवश्यकता है। मैंने पहले ही निर्यात फ़ाइल में वर्णसेट को बदलने और इसे वापस आयात करने की कोशिश की है, लेकिन इसे काम नहीं कर पाया।

फिर मैंने एबीएस से ऊपर दिए गए उत्तर की कोशिश की और मेज पर अपडेट शुरू किया।

 UPDATE tt_news SET title=convert(cast(convert(title using latin1) as binary) using utf8), short=convert(cast(convert(short using latin1) as binary) using utf8), bodytext=convert(cast(convert(bodytext using latin1) as binary) using utf8) WHERE 1 

यदि आप की जरूरत हो तो आप छवि कैप्टन, इमेजटटेक्स्ट, इमेप्टीटीटेक्सट और कीवर्ड भी कन्वर्ट कर सकते हैं। आशा है कि यह किसी नए टाइपो 3 संस्करण के लिए ट्रांसमीटर को माइग्रेट करने में सहायता करेगा।

जिस तरीके से आप डेटाबेस से सामान्य कनेक्शन का इस्तेमाल करते हैं

तो इस कोड का उपयोग करें ताकि आपको क्या चाहिए कि आपको अपना पृष्ठ एन्कोडिंग यूटएफ -8 को हेडर कॉड एचटीएमएल में मेटा द्वारा करना चाहिए (इसे न भूलें)

तो इस कोड का उपयोग करें

  $result = mysql_query('SELECT * FROM shops'); while ($row = mysql_fetch_assoc($ $name= iconv("windows-1256", "UTF-8", $row['name']); mysql_query("SET NAMES 'utf8'"); mysql_query("update `shops` SET `name`='".$name."' where ID='$row[ID]' "); }