网站设计内容,wp做购物网站,网站的网站地图怎么做,大地资源中文在线观看最近帮同事处理了一个中信银行银企直连接口的一个问题#xff0c;同事反馈#xff0c;使用STRANS转换XML后#xff0c;encoding始终是’utf-16’,就算指定了GBK也不行。尝试了很多办法始终不行#xff0c;发到银行的数据中#xff0c;中文始终是乱码。 Debug使用HTML视图…最近帮同事处理了一个中信银行银企直连接口的一个问题同事反馈使用STRANS转换XML后encoding始终是’utf-16’,就算指定了GBK也不行。尝试了很多办法始终不行发到银行的数据中中文始终是乱码。 Debug使用HTML视图看报文时也可以看到中文是乱码。 解决方案
使用cl_sxml_string_writercreate创建一个GBK编码的对象 用来做为STRANS的结果最重要的是直接发转了编码后的XSTRING过去不要 转STRING。因为我们的程序是UNICODE的只要转成STRING,中文就会变成乱码。 返回的结果也一样看下XSTRING可以正常显示如果直接转成STRING就也会变乱码。
主要代码
DATA: lv_url TYPE string.DATA: lo_xml TYPE REF TO cl_sxml_string_writer.
DATA: x_xml TYPE xstring.
DATA: jsonstr TYPE string.
DATA: xmlstr TYPE string.lo_xml cl_sxml_string_writercreate( encoding GBKno_empty_elements X ).TRY .CALL TRANSFORMATION zqbtest_sample31SOURCE header header[]item item[]RESULT XML lo_xml.CATCH cx_st_error INTO lo_oref .lv_msg lo_oref-get_text( ) .WRITE: / Error message,lv_msg.
ENDTRY.x_xml lo_xml-get_output( ).lv_url http://192.168..:.cl_http_clientcreate_by_url(
EXPORTINGurl lv_url
IMPORTING
client DATA(lo_http_client)
EXCEPTIONSargument_not_found 1plugin_not_active 2internal_error 3OTHERS 4 ).lo_http_client-propertytype_logon_popup lo_http_client-co_disabled.CALL METHOD lo_http_client-request-set_content_typeEXPORTINGcontent_type text/xml; charsetGBK.
CALL METHOD lo_http_client-request-set_method( POST ).CALL METHOD lo_http_client-request-set_dataEXPORTINGdata x_xml.lo_http_client-send(
EXCEPTIONShttp_communication_failure 1http_invalid_state 2 ).IF sy-subrc 0.操作失败获取失败原因lo_http_client-get_last_error( IMPORTING message DATA(lv_msg1) ).EXIT.
ENDIF.lo_http_client-receive(
EXCEPTIONShttp_communication_failure 1http_invalid_state 2http_processing_failed 3 ).
IF sy-subrc 0 .操作失败获取失败原因lo_http_client-get_last_error( IMPORTING message lv_msg ).EXIT.
ENDIF.DATA(response) lo_http_client-response-get_data( ).
* ev_response response.CALL METHOD lo_http_client-close.