यहां एक संभावित समाधान है, लेकिन इसका परीक्षण नहीं किया गया है इसलिए इसे ध्यान में रखें!
मैं कुछ समय पहले ओरेकल में विशेष पात्रों के साथ इसी तरह के मुद्दे पर आया था। हमारा चरित्र UTF-16 पर सेट है। सामान्य 32-127 रेंज के बाहर उमलॉट्स और अन्य एएससीआई पात्रों जैसी अजीब चीजें थीं।
एक चीज जो आप कोशिश कर सकते हैं वह पहले उस सीमा के बाहर किसी भी चीज़ के लिए एक HTML एन्कोड कर रही है, जो कि आपके डेटाटेबल में सी # में लोड हो रही है, फिर डेटाटेबल भर रहा है (या इसे भरने के बाद ...), उन फ़ील्ड पर एक HTML डीकोड करें।
हमारे पास एक HTML एन्कोड फ़ंक्शन है जो हमारे लिए ऐसा करता है, जैसे:
FUNCTION HTML_Encode_Special_Characters
(p_string IN VARCHAR2,
p_do_encode IN VARCHAR2 DEFAULT 'Y')
RETURN VARCHAR2 IS
first_location number := REGEXP_INSTR(p_string, '([^' || CHR(1) || '-' || CHR(127) || '])');
v_string VARCHAR2(32000);
v_char VARCHAR2(1 char);
v_ascii_number number;
BEGIN
IF p_do_encode = 'Y' AND first_location > 0 THEN
v_string := p_string;
FOR i IN first_location .. length(v_string) LOOP
v_char := substr(v_string,i,1);
v_ascii_number := ascii(v_char);
IF v_ascii_number > 128 THEN
-- just replace all of them
v_string := REPLACE (v_string, v_char,'&#' || v_ascii_number || ';');
END IF;
END LOOP;
RETURN (v_string);
ELSE
RETURN p_string;
END IF;
END;
तो यह आपकी तालिका में "स्ट्रिंग" डेटा लोड करना चाहिए और किसी भी मामले में जहां आपके पास विशेष वर्ण हैं, यह '½' या उस प्रभाव के लिए कुछ दिखाई देगा।
फिर C# की तरफ आप html डिकोड के साथ कुछ कर सकते हैं:
using System.Web;
HttpUtility.HtmlDecode(mystring);
दोबारा... परीक्षण नहीं किया गया। लेकिन इसे लागू करना और परीक्षण करना बहुत आसान होना चाहिए और/या इसे काम करने के लिए इसमें थोड़ा बदलाव करना चाहिए।
एक वैकल्पिक समाधान यह भी होगा कि आप उन सभी विशेष वर्णों को "नियमित" अभ्यावेदन (यानी, एक सामान्य डैश के लिए एक एम-डैश) में बदलने के लिए अपने डेटाबेस पर डेटाफ़िक्स करें। आप कुछ नियमित अभिव्यक्तियों के साथ, CHR() फ़ंक्शन का उपयोग करके और DUMP() फ़ंक्शन का उपयोग करके विषम डेटा देखने के लिए ऐसा कर सकते हैं।