2010-04-22 2 views
7

यदि मेरा आवेदन एकाधिक भाषाओं (चीनी, जापानी आदि सहित) में होने जा रहा है, तो मुझे किस डेटाबेस का उपयोग करना चाहिए? दूसरे शब्दों में, MySQL यूनिकोड इत्यादि को संभालने के लिए पोस्टग्रेज़ से बेहतर या बदतर है? (ये मेरी होस्टिंग कंपनी के पास केवल दो डेटाबेस हैं)यूनिकोड को संभालने में कौन सा डेटाबेस और भाषा बेहतर है?

इसके अलावा, यूनिकोड को संभालने के लिए कौन सी भाषा बेहतर है? PHP या रूबी/रेल?

+1

मुझे लगता है कि आप भाषा के लिए एक अलग प्रश्न नहीं बनाया जाना चाहिए। –

+0

मुझे पसंद है जब लोग नई प्रोग्रामिंग भाषाओं को सीखना शुरू करते हैं क्योंकि उनके होस्टिंग प्रदाता ने उन्हें इंस्टॉल किया है। – newtover

उत्तर

7

माइस्क्ल यूनिकोड के लिए पूर्ण समर्थन नहीं है (उदाहरण: बीएमपी के बाहर चीनी वर्ण) (see)। यह एक अपंग 'utf8' एन्कोडिंग (वास्तव में यूटीएफ -8 नहीं) का उपयोग करता है।

पोस्टग्रेस्क्लUTF-8 encoding (इसलिए, सभी यूनिकोड वर्णों के लिए) के लिए पूर्ण समर्थन प्रतीत होता है।

+3

पूरी तरह से सच है। MySQL स्टोर 1-3 बाइट्स और PostgreSQL 1-4 बाइट प्रति यूटीएफ -8 चार। PostgreSQL के लिए जाओ। – BalusC

1

डेटाबेस:

मेरे अनुभव में, दोनों MySQL और Postgres यूनिकोड संभाला काफी ठीक है।

भाषाएँ:

  • पीएचपी < = 5.3 कुछ हद तक, यूनिकोड के संबंध में प्रतिबंधित है, जबकि आगामी PHP 6 वादों कि ठीक करने के लिए।
  • रूबी 1.8 में खराब यूनिकोड समर्थन था, लेकिन 1.9 को यूनिकोड अच्छी तरह से संभालने के लिए कहा जाता है (मेरे पास कोई अनुभव नहीं है)।

पीएचपी 5.3 के प्रतिबंध:

यह यूनिकोड के साथ एक साथ PHP 5 उपयोग करने के लिए संभव है, लेकिन फिर एक तार के साथ सावधान किया जाना है। उदाहरण के लिए, कई स्ट्रिंग फ़ंक्शंस जो अक्षर की लंबाई की गणना करता है, बाइट्स की संख्या देता है, न कि वर्णों की संख्या। हालांकि अतिरिक्त कार्य उपलब्ध हैं, जो पात्रों की संख्या लौटाते हैं।

यदि यह एक नई परियोजना है तो आपको शुरुआत से सही कार्यों का उपयोग करने में सक्षम होना चाहिए।

हमारे मौजूदा PHP प्रोजेक्ट के लिए, मैंने इसे एक आंतरिक परियोजना और यूनिकोड के लिए सीमित मूल्य होने के कारण इसे छोड़ने का फैसला किया (दुख की बात है, मैं वास्तव में यूनिकोड से प्यार करता हूं)।

+0

यदि आपका डीबी ड्राइवर यूनिकोड का समर्थन नहीं करता है, तो आप कच्चे बाइट एरे को पढ़ और लिख सकते हैं और उन्हें वांछित एन्कोडिंग का उपयोग करके तारों में परिवर्तित कर सकते हैं। –

0

मेरी मामलों Postgresql में MySQL, MySQL से बेहतर था पूरी तरह से समर्थन नहीं करते यूनिकोड

+0

कि पहले से ही उत्तर दिया गया था। बस उस उत्तर को ऊपर उठाएं जिसे आप एक बार फिर से दोबारा पोस्ट करने के बजाय पूरी तरह से सहमत हैं। – BalusC

-1

Postgresql + PHP6 अच्छा विकल्प

+0

PHP6? कहा पे? क्या उन्होंने utf16 सामान को ब्रांच नहीं किया था और कुछ महीने पहले रीसेट जारी किया था? :-) –

संबंधित मुद्दे