2013-03-22 10 views
5

मैं वर्तमान में पावरशेल स्क्रिप्ट से एक JSON फ़ाइल का उत्पादन कर रहा हूं लेकिन यह '<' जैसे विशेष वर्णों के बजाय यूनिकोड आउटपुट कर रहा है, मुझे लिंकटेक्स्ट में HTML की आवश्यकता है लेकिन यह सुनिश्चित नहीं है कि एन्कोडिंग को कैसे बदला जाए।जेसन एन्कोडिंग एचटीएमएल स्ट्रिंग

[ 
    { 
     "Id": "187303", 
     "LinkText": "\u003cb style =color:#d11717;\u0027\u003eAnnual General Meeting (MEET)" 
    }, 
    { 
     "Id": "187305", 
     "LinkText": "\u003cb style =color:#d11717;\u0027\u003eAnnual General Meeting (MEET)" 
    } 
] 

इस कोड है कि मैं का उपयोग कर रहा है:

$(foreach ($row in $DataSet.Tables[0].Rows){ 
    $stockShortName = $row[0].ToString().Trim() 
    $id = $row[0].ToString().Trim() 
    $linkText = "<b style =color:`#d11717;'>$event_description" 

    (New-Object PSObject | 
    Add-Member -PassThru NoteProperty Id $id | 
    Add-Member -PassThru NoteProperty LinkText $linkText 
    ) 
}) | ConvertTo-JSON | Out-File $OutputFile -Encoding "default" 
+0

-नोडिंग यूटीएफ 8? –

उत्तर

2

मुझे उस रूपांतरण को होने से रोकने के लिए अंतर्निहित पैरामीटर नहीं दिखाई देता है। यहां एक वर्कअराउंड है जो यूनिकोड वर्णों को वापस परिवर्तित करता है:

[regex]::replace($json,'\\u[a-fA-F0-9]{4}',{[char]::ConvertFromUtf32(($args[0].Value -replace '\\u','0x'))}) 
+0

इस शै – steven

+0

के लिए धन्यवाद आप यहां बताए गए [regex] :: Unescape() का भी उपयोग कर सकते हैं: http://stackoverflow.com/questions/29306439/powershell-convertto-json-problen-containing-special-characters। – Cary

0

बाहर फ़ाइल है एक अपराधी यहाँ नहीं है, यह वास्तव में क्या लिखते हैं

यह आउटपुट मैं हो रही है कन्वर्टो-जेसन उत्पादन करता है। हालांकि, अगर आप अपने आउटपुट को कनवर्टफ्रॉम-जेसन में पाइप करते हैं, तो यह ठीक काम करता है। क्या आप वाकई एक समस्या है?

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