मेरे प्रोग्राम को कुछ यूनिकोड स्ट्रिंग्स प्रदर्शित करने की आवश्यकता है। अगर मैं यूटीएफ -16LE का उपयोग कर स्रोत कोड सहेजता हूं, तो सब कुछ ठीक काम करता है। हालाँकि, मैं mingw का उपयोग करके linux में कंपाइल को पार करने में सक्षम नहीं था। अगर मैं यूटीएफ -8 का उपयोग करके स्रोत को सहेजता हूं, तो स्रोत कोड को बिना किसी समस्या के संकलित किया जा सकता है। लेकिन सभी कॉन्स यूनिकोड स्ट्रिंग्स सही ढंग से प्रदर्शित नहीं हुए क्योंकि उन्हें यूटीएफ -8 के रूप में एन्कोड किया गया है। जब स्रोत कोड को UTF-8 एन्कोडेड के रूप में सहेजा जाता है तो मैं यूनिकोड स्ट्रिंग को ठीक से कैसे प्रदर्शित कर सकता हूं?

उदाहरण कोड:

#include <Windows.h>

int main(int argc, const char *argv[])
{
    MessageBoxW(NULL, L"你好", L"你好", MB_OK);
}

UTF-16LE स्रोत फ़ाइल के साथ संकलित

UTF-8 स्रोत फ़ाइल के साथ संकलित

0
Tianchen Tang 26 पद 2019, 12:00

1 उत्तर

सबसे बढ़िया उत्तर

कुछ परीक्षण के बाद, यह पता चला है कि यदि फ़ाइल हस्ताक्षर (बीओएम) के बिना यूटीएफ -8 में एन्कोड की गई है तो विजुअल स्टूडियो स्ट्रिंग को सही ढंग से एन्कोड नहीं कर सकता है। एन्कोडिंग योजना को हस्ताक्षर के साथ UTF-8 में बदलने के बाद सब कुछ ठीक काम करता है।

0
Tianchen Tang 26 पद 2019, 14:29