2013-03-08 13 views
6

में विशेष वर्णों के साथ समस्या मैं एक एएसपी .NET MVC4 API नियंत्रक के लिए Invoke-WebRequest का उपयोग करके विशेष वर्ण (norwegian) भेजने की कोशिश कर रहा हूं।Invoke-WebRequest - जेसन

मेरी समस्या यह है कि नियंत्रक द्वारा प्राप्त होने पर जेसन ऑब्जेक्ट न्यूल के रूप में दिखाई देता है, अगर मेरे जेसन डेटा में Æ Ø Å जैसे वर्ण होते हैं।

मेरे कोड का एक उदाहरण:

$text = 'Æ Ø Å' 
$jsondata = $text | ConvertTo-Json 
Invoke-WebRequest -Method POST -Uri http://contoso.com/create -ContentType 'application/json; charset=utf8' -Body $jsondata 

इसके अलावा जब Fiddler में दिखने वाले वर्णों तक सामान्य अजीब UTF8 बक्से की तरह बदल जाते हैं।

ही एपीआई नियंत्रक से Fiddler से json डेटा भेजा जा रहा ठीक

किसी भी सलाह काम करता है?

+0

क्या आप समस्या को कम करने के लिए फिडलर को आजमा सकते हैं और आग लगा सकते हैं? –

+0

'POST http: // localhost: 51212/api/HTTP जोड़ें/1.1 \t उपयोगकर्ता-एजेंट: मोज़िला/5.0 (विंडोज एनटी; विंडोज एनटी 6.1; एनबी-एन) विंडोजपावरशेल/3.0 \t सामग्री-प्रकार: एप्लिकेशन/जेसन ; charset = utf-8 \t मेजबान: स्थानीय होस्ट: 51,212 \t सामग्री-लंबाई: 3 \t \t ' –

उत्तर

19

Body पैरामीटर के लिए यह प्रयास करें:

... -Body ([System.Text.Encoding]::UTF8.GetBytes($jsondata)) 

PowerShell में स्ट्रिंग यूनिकोड है, लेकिन आप एक UTF8 एन्कोडिंग निर्दिष्ट किया है तो मैं आप इसे कुछ UTF8 के लिए हो रही मदद देने के लिए की जरूरत है।

+0

, धन्यवाद मैं यह सोच कर कि स्ट्रिंग पहले से ही UTF8 था के बाद से ps फ़ाइल UTF8 है की ग़लतफ़हमी में था । –

+1

@ किथ हिल, इस जवाब ने मुझे पूरी तरह से बचाया जब मैंने एक समान समस्या को मारा और बहुत दर्द किया। मैंने सोचा नहीं था कि यह मुद्दा यूनिकोड -> यूटीएफ 8 था। +1 –