生成XML时未正确显示Unicode字符

时间:2015-01-13 12:38:14

标签: xml plsql oracle11g

我有这个包。该包生成XML文件并将其导出到各个商店。但是我遇到过这样一种情况,即如果员工姓名具有类似'RïçhàrdBæcôn'的特殊字符,则XML会将其生成为'Richard B?con'。

CREATE OR replace PACKAGE BODY
  my_pkg
AS
FUNCTION Get_emp
  RETURN T_XFORM_STRING
IS
  PRAGMA autonomous_transaction;
  emp_data_string T_XFORM_STRING := T_xform_string();
  line_counter NUMBER := 1;
  v_text       VARCHAR2(4000) := NULL;
  v_rowcnt     NUMBER := 0;
  emp_rec EMP_REC_TYPE;
BEGIN
  SELECT Count(*)
  INTO   v_rowcnt
  FROM   nbty_custom ;

  IF ( v_rowcnt > 0 ) THEN
    OPEN emp_cur;
    FETCH emp_cur bulk collect
    INTO  emp_rec.emp_id,
          emp_rec.emp_name,
          emp_rec.emp_city;

    CLOSE emp_rec;
    FOR i IN 1..emp_rec.emp_id.Count()
    LOOP
      BEGIN
        SELECT
               CASE
                      WHEN emp_rec.Emp_id(i) IN('001',
                                                '002',
                                                '003') THEN '    <Employee>        '
                                    ||Chr(10)
                                    || '        <EmployeeID>'
                                    ||emp_rec.Emp_id(i)
                                    ||'</EmployeeID>'
                                    ||Chr(10)
                                    || '        <EmployeeName>'
                                    ||emp_rec.Emp_name(i)
                                    ||'</EmployeeName>'
                                    ||Chr(10)
                                    || '        <EmployeeCity>'
                                    ||emp_rec.Emp_city(i)
                                    ||'</EmployeeCity>'
                                    ||Chr(10)
                                    || '    </Employee>        '
                                    ||Chr(10)
                                    ||
               end
        into   v_text
        FROM   dual;--emp_data_string.extend;
        Emp_data_string(line_counter) :=v_text;
        line_counter:=line_counter+1;
      END;
    END LOOP;
  END IF;
  RETURN emp_data_string;
END get_emp;
END my_pkg;

我尝试过使用htf.escape_sc()函数。但仍然没有得到相同的格式。我想在XML中显示为'RïçhàrdBæcôn'。

任何人都可以帮忙吗?

0 个答案:

没有答案