सबसे पहले, सुनिश्चित करें कि आपका सर्वर utf8mb4 का उपयोग करने के लिए ठीक से कॉन्फ़िगर किया गया है। इसके बाद ट्यूटोरियल , आपको निम्नलिखित को अपने my.cnf (या my.ini यदि आप विंडोज़ पर हैं) में जोड़ना होगा:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
यह MySQL सर्वर को utf8mb4 का उपयोग करने और क्लाइंट द्वारा सेट किए गए किसी भी एन्कोडिंग को अनदेखा करने के लिए कहता है। उसके बाद, मुझे Talend में MySQL कनेक्शन पर कोई अतिरिक्त गुण सेट करने की आवश्यकता नहीं थी। मैंने इस क्वेरी को टैलेंड में इसके द्वारा सेट किए गए एन्कोडिंग की जांच करने के लिए निष्पादित किया है:
SHOW VARIABLES
WHERE Variable_name LIKE 'character\\_set\\_%' OR Variable_name LIKE 'collation%'
और यह वापस आ गया:
|=-----------------------+-----------------=|
|Variable_Name |Value |
|=-----------------------+-----------------=|
|character_set_client |utf8mb4 |
|character_set_connection|utf8mb4 |
|character_set_database |utf8mb4 |
|character_set_filesystem|binary |
|character_set_results | |
|character_set_server |utf8mb4 |
|character_set_system |utf8 |
|collation_connection |utf8mb4_unicode_ci|
|collation_database |utf8mb4_unicode_ci|
|collation_server |utf8mb4_unicode_ci|
'------------------------+------------------'
मल के ढेर को सम्मिलित करने के लिए निम्नलिखित परीक्षण कार्य करता है:
अपडेट करें
Talend 6.3.1 में मूल MySQL घटकों का उपयोग करके, आपको mysql-connector-java-5.1.30-bin.jar
मिलता है , जो सर्वर द्वारा उपयोग किए गए utf8mb4 का स्वचालित रूप से पता लगाने के लिए माना जाता है, लेकिन किसी कारण (बग?) के लिए यह ऐसा नहीं कर रहा है। nofollow noreferrer noopener" href="https://dev.mysql.com/downloads/file/?id=474258">कनेक्टर
(mysql-connector-java-5.1.45-bin.jar
), मैंने इन अतिरिक्त मापदंडों को tJDBCConnection
. पर सेट करके काम किया है घटक :
useUnicode=true&characterEncoding=utf-8
(भले ही मैं utf-8 निर्दिष्ट कर रहा हूं, डॉक्टर का कहना है कि यह इसे utf8mb4 के रूप में मानेगा)
यहाँ मेरी नौकरी अब कैसी दिखती है: