Plsql UTL_HTTP和法语口音

Plsql UTL_HTTP和法语口音,plsql,utf-8,character-encoding,webservice-client,french,Plsql,Utf 8,Character Encoding,Webservice Client,French,我尝试使用UTL_HTTP包调用web服务,它可以工作,但我遇到了法语口音('e'和'è')的问题,UTF-8无法工作 CONTENT := '{ "metier": { "REF_CONTRAT": "'||ref_contrat||'", "ID_HISTO": "'||id_histo||'", "I

我尝试使用UTL_HTTP包调用web服务,它可以工作,但我遇到了法语口音('e'和'è')的问题,UTF-8无法工作

        CONTENT :=  '{
        "metier": {
        "REF_CONTRAT": "'||ref_contrat||'",
        "ID_HISTO": "'||id_histo||'",
        "ID_OBJ_DECLENCHEUR": "'||ID_OBJ_DECLENCHEUR||'",
        "TYPE_OBJ_DECLENCHEUR": "'||type_obj_declencheur||'",
        "ID_SCENARIO_INSTANCIE": "'||ID_SCENARIO_INSTANCIE||'",
        "ID_SCENARIO": "'||id_scenario||'",
        "ID_SMS": "'||id_sms||'",
        "REPONSE_RECUE": "'||reponse_recue||'",
        "ACTION": "'||ACTION||'",
        "TYPE_ACTION": "'||TYPE_ACTION||'"
      }
    }'; 
   -- V_URL:=UTL_URL.ESCAPE(V_URL,FALSE,'UTF-8');
UTL_HTTP.SET_BODY_CHARSET('UTF-8');
REQ := UTL_HTTP.BEGIN_REQUEST(V_URL, V_METHODE,' HTTP/1.1');
UTL_HTTP.SET_HEADER(REQ, 'user-agent', 'mozilla/4.0');
-- UTL_HTTP.SET_HEADER(REQ, 'content-type', V_CONTENT_TYPE);
UTL_HTTP.SET_HEADER(REQ, 'content-type','application/json; charset="UTF-8"');
utl_http.set_header(req, 'Content-Length', lengthB(content));
UTL_HTTP.SET_HEADER(REQ,'Authorization',V_AUTHORIZATION);
UTL_HTTP.WRITE_TEXT(REQ, CONTENT);
/* UTL_HTTP.WRITE_RAW (R => REQ,
data => UTL_RAW.CAST_TO_RAW(CONTENT)); */
我有错误500作为回应。
有什么想法吗?我尝试了在互联网上找到的所有内容,但都不起作用

问题是,当问题包含组合字符时,长度没有给出正确的长度;é被计算为1字节,而不是2字节,因此当我将请求转换为AL32UTF8:length(Convert(CONTENT,'AL32UTF8'))时,它起作用了。

HTTP状态5xx表示服务器问题(4xx表示客户端问题)。如果你“尝试了所有”,那么就没有解决办法。和服务器所有者谈谈怎么样?他应该对您如何让他进入HTTP状态500感兴趣。在我看来,这像是一个客户端问题,因为我调用了2个web服务,没有重音也没关系,而且当它包含重音时,我得到错误的500 xml格式。当我不添加编码时,我可以在soapui中重现它,除了UTF-8解决了soapui中的问题,而不是plsql中的问题。问题?你是说“请求”吗<代码>é是一个字符(需要2个字节-这是
长度B
中的“B”)。是的,我是指请求(我编辑了我的评论)。我已经尝试了lengthB,但它给出的值与length相同