Nodejs如何发送中文xml的post请求

问题描述:

最近在接微信支付的sdk。需要向微信服务器post一个xml,xml中如果不带中文的话微信那边是可以正确识别的。但是如果带了中文微信那边就报xml格式错误。

发送的xml:

 <xml>
    <appid><![CDATA[wx6e7c4258200000000]]></appid>
    <attach><![CDATA[test]]></attach>
    <body><![CDATA[jsapitest]]></body>
    <mch_id>1318100000</mch_id>
    <nonce_str><![CDATA[dv9k09ewgkyjsjo]]></nonce_str>
    <notify_url><![CDATA[http://wx.test.com/payCallback/]]></notify_url>
    <openid><![CDATA[ofBzdvpT6EhFjmCRmSCPQ9JhFnOQ]]></openid>
    <out_trade_no><![CDATA[56dce48af3609a005dabf5b5]]></out_trade_no>
    <spbill_create_ip><![CDATA[222.211.174.254]]></spbill_create_ip>
    <total_fee>5800</total_fee>
    <trade_type><![CDATA[JSAPI]]></trade_type>
    <sign><![CDATA[6849B595D0C35598055EA9D07F1506A8]]></sign>
</xml>

像这样不带中文的微信那边能正确识别并返回正确的信息。但是如果带中文的话。
微信会返回:

 <xml>
 <return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[XML格式错误]]></return_msg>
</xml>

尝试过在headers里面加charset=utf-8。尝试过在xml里面指定编码。都没有效果。
那么问题来了。请教怎么才能让微信正确识别中文xml的post请求呢