UTL_HTTP 和法国口音

UTL_HTTP and french accents

我尝试使用包 UTL_HTTP 调用 Web 服务,它可以工作,但我遇到了法语口音('é' 和 'è')的问题,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'))