Сохранить в html используя utf 8 - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно сохранить HTML-файл как UTF 8. Это не о. Это возможно? Короче моя процедура такая:

CREATE OR REPLACE PROCEDURE MY_PROCEDURE
  IS

vFil  UTL_FILE.FILE_TYPE;
vFilNavn   varchar2(250);
vLinje  varchar2(32767);

begin
vFil := UTL_FILE.FOPEN ('MY_DIRECTORY',vFilNavn||'.tmp','w',32767);
UTL_FILE.PUT_LINE(vFil,vLinje);
    end;

   FOR recB in (select row from (my_html_content) );

loop 
vLinje := recB.Rad;
UTL_FILE.PUT_LINE(vFil,substr(vLinje,1,32767));    
end loop;   

UTL_FILE.FCLOSE(vFil);
UTL_FILE.FRENAME('MY_DIRECTORY',vFilNavn||'.tmp', 'MY_DIRECTORY',vFilNavn||'.html',TRUE);

1 Ответ

1 голос
/ 28 марта 2019

Используйте UTL_FILE.FOPEN_NCHAR вместо UTL_FILE.FOPEN.

См. Документацию Oracle UTL_FILE :

UTL_FILE ожидает, что файлы, открытые UTL_FILE.FOPEN в текстовом режиме, закодирован в наборе символов базы данных. Ожидается, что файлы, открытые UTL_FILE.FOPEN_NCHAR в текстовом режиме кодируются символом UTF8. набор .

FOPEN_NCHAR Функция

Даже если содержимое буфера NVARCHAR2 может быть AL16UTF16 или UTF8 (в зависимости от национального набора символов базы данных), содержимое файла всегда читается и записывается в UTF8 .

...