WordPress र डाटाबेस एक्सपोर्ट: नेपालीको सट्टा भाषा

माइग्रेसन, अपडेट वा डाटाबेस एक्सपोर्टपछि तपाईंका पोस्टमा भाषा को सट्टा अचानक भाषा देखिन्छ? डाटा प्रायः जस्ताको तस्तै हुन्छ, केवल गलत इन्कोडिङले पढिएको हुन्छ। Mojibuster ले एक्सपोर्ट ठीक गर्छ; अनि तपाईं डाटाबेसमा मूल कारण सुधार्नुहुन्छ।

टेक्स्ट र यी फाइलहरू चल्छन्:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • SMI
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

जस्तै Excel बाट निकालिएका फाइल, डाटाबेस डम्प, सबटाइटल वा वेबसाइटको कोड।

ठीक पार्नुहोस्

  1. फाइल तानेर ल्याउनुहोस् वा टेक्स्ट टाँस्नुहोस्
  2. आफैं ठीक हुन्छ
  3. कपी वा डाउनलोड गर्नुहोस्
वा फाइल यहाँ तानेर ल्याउनुहोस्
  • कुनै अपलोड छैन। फाइलहरू तपाईंकै ब्राउजरमा ठीक हुन्छन् र तपाईंको उपकरणबाट बाहिर जाँदैनन्।

  • सर्भर EU मा। Mojibuster फिनल्यान्ड (EU) को एउटा सर्भरमा चल्छ, त्यसैले युरोपको सामान्य डाटा संरक्षण नियमन (GDPR) लागू हुन्छ। GDPR पढ्नुहोस् (EUR-Lex, अंग्रेजीमा)

समस्या कस्तो देखिन्छ

सर्भर बदलेपछि SQL डम्पको एक लाइन

पहिले

INSERT INTO wp_posts (post_title) VALUES ('नेपाली भाषा र नाम');

पछि

INSERT INTO wp_posts (post_title) VALUES ('नेपाली भाषा र नाम');

यो कहाँबाट आउँछ

WordPress ले टेक्स्ट UTF-8 मा राख्छ। तर धेरै पुराना साइटमा टेबल latin1 मा बनेका थिए वा कनेक्सन latin1 बाट जोडिन्थ्यो। लेख्दा र पढ्दा उही गल्ती भइरहेसम्म कसैले थाहा पाउँदैन। नयाँ सर्भरमा सार्दा, phpMyAdmin बाट एक्सपोर्ट गर्दा वा कनेक्सनको charset बदल्दा हरेक नेपाली अक्षर अचानक धेरै अनौठा चिह्नमा बदलिन्छ।

  • wp-config.php मा DB_CHARSET को मान latin1 छ वा टेबलसँग मेल खाँदैन।
  • डम्प latin1 मा एक्सपोर्ट भयो र utf8mb4 मा इम्पोर्ट भयो, वा उल्टो।
  • कुनै प्लगइन वा इम्पोर्ट स्क्रिप्टले पहिले नै बिग्रिएको टेक्स्टलाई अर्को पटक बदल्यो। यसले दुई पटक बिग्रिएको टेक्स्ट बनाउँछ, जस्तै à ¤­।

एक्सपोर्ट ठीक गर्नुहोस्

  1. केही बदल्नुअघि डाटाबेसको ब्याकअप लिनुहोस्।
  2. प्रभावित टेबल .sql फाइलमा एक्सपोर्ट गर्नुहोस्, जस्तै phpMyAdmin बाट वा mysqldump --default-character-set=utf8mb4 बाट।
  3. फाइल माथिको बक्समा राख्नुहोस्। Mojibuster ले बिग्रिएका ठाउँ मात्र ठीक गर्छ र हरेक परिवर्तन देखाउँछ।
  4. ठीक गरिएको फाइल डाउनलोड गरी utf8mb4 सहित नयाँ परीक्षण डाटाबेसमा इम्पोर्ट गर्नुहोस्।
  5. साइट जाँच्नुहोस्। सबै ठीक देखिए वास्तविक डाटाबेसमा इम्पोर्ट गर्नुहोस्।

डम्प कहिल्यै अपलोड हुँदैन। यो महत्त्वपूर्ण छ, किनभने त्यसमा प्रायः प्रयोगकर्ता खाता, इमेल ठेगाना र टिप्पणी हुन्छन्। यसबारे थप कानुनी जानकारी मा।

serialized डाटासँग सावधान

WordPress ले केही सेटिङ wp_options र wp_postmeta मा serialized PHP मानका रूपमा राख्छ, जस्तै s:12:"भाषा";। संख्या बाइटमा लम्बाइ हो (देवनागरीको हरेक अक्षरले ३ बाइट लिन्छ)। टेक्स्टको लम्बाइ बदलिएपछि संख्या मेल खाँदैन र WordPress ले त्यो मान छोड्छ। त्यसैले पहिले wp_posts, wp_comments र wp_terms जस्ता सामग्री टेबल ठीक गर्नुहोस्। options का लागि WP-CLI को wp search-replace राम्रो हो, किनकि त्यसले लम्बाइ पनि अपडेट गर्छ।

MySQL मा मूल कारण सुधार्नुहोस्

  • टेबल र कनेक्सन utf8mb4 मा लैजानुहोस् र wp-config.php मा define('DB_CHARSET', 'utf8mb4'); राख्नुहोस्।
  • latin1 कोलममा UTF-8 बाइट छन् भने सिधै नबदल्नुहोस्, नत्र टेक्स्ट दोहोरिएर इन्कोड हुन्छ। सामान्य बाटो बाइनरी टाइप हुँदै जान्छ: पहिले MODIFY … LONGBLOB, अनि MODIFY … LONGTEXT CHARACTER SET utf8mb4।
  • हरेक परिवर्तन पहिले डाटाबेसको प्रतिलिपिमा प्रयास गर्नुहोस्।

धेरै सोधिने प्रश्नहरू

पूरै WordPress डाटाबेस एकैपटक ठीक गर्न सकिन्छ?

सकिन्छ, ठूला SQL डम्प पनि। तर wp_options र wp_postmeta को serialized डाटामा ध्यान दिनुहोस्; त्यहाँ WP-CLI राम्रो हो।

डम्पका ठीक अक्षर बदलिन्छन्?

बदलिँदैनन्। Mojibuster ले स्पष्ट रूपमा बिग्रिएका क्रम मात्र ठीक गर्छ। ठीक टेक्स्ट जस्ताको तस्तै रहन्छ।

utf8 र utf8mb4 मा के फरक छ?

MySQL मा utf8 ले तीन बाइटसम्मका अक्षर मात्र राख्छ, त्यसैले इमोजी हराउँछन्। utf8mb4 वास्तविक UTF-8 हो र WordPress का लागि सही छनोट हो।

के यो WordPress बाहेक अरू प्रणालीमा पनि चल्छ?

चल्छ। Joomla, Drupal, Magento वा MySQL/MariaDB मा बनेको तपाईंको आफ्नै एप, सबैमा उही समस्या र उही समाधान हो।

थप गाइड