Character encoding Oracle APEX中文件预览的编码问题
我正在尝试在Oracle APEX 20.1中创建文件预览功能 我创建了一个带有before头进程的新页面Character encoding Oracle APEX中文件预览的编码问题,character-encoding,blob,oracle-apex,Character Encoding,Blob,Oracle Apex,我正在尝试在Oracle APEX 20.1中创建文件预览功能 我创建了一个带有before头进程的新页面 declare l_bfile BFILE; l_blob BLOB; vv_name varchar2(1000); vv_ext varchar2(1000); vv_mime_type varchar2(1000); vv_download_name varchar2(1000); ve_no_file EXCEPTION; begin IF :P10003_DIR = 'T
declare
l_bfile BFILE;
l_blob BLOB;
vv_name varchar2(1000);
vv_ext varchar2(1000);
vv_mime_type varchar2(1000);
vv_download_name varchar2(1000);
ve_no_file EXCEPTION;
begin
IF :P10003_DIR = 'TYPE_1' THEN
select filename ,regexp_substr(atrybut24, '[^.]+', 1, 2) into vv_name,vv_ext from table1 where id = :P10003_ID;
ELSIF :P10003_DIR = 'TYPE_2' THEN
select LOG,'LOG' into vv_name,vv_ext from table1 where id = :P10003_ID;
END IF;
vv_download_name := vv_name;
IF upper(vv_ext) = 'PDF' THEN
vv_mime_type := 'application/pdf';
ELSIF upper(vv_ext) = 'XLSX' THEN
vv_mime_type := q'~application/vnd.openxmlformats-officedocument.spreadsheetml.sheet~';
ELSIF upper(vv_ext) = 'LOG' THEN
vv_mime_type := 'text/plain';
vv_download_name := vv_download_name || '.txt';
END IF;
IF dbms_lob.fileexists(bfilename(:P10003_DIR, vv_name)) = 1 THEN
dbms_lob.createtemporary(l_blob,TRUE);
l_bfile := BFILENAME(:P10003_DIR, vv_name);
DBMS_LOB.OPEN(l_bfile, DBMS_LOB.LOB_READONLY);
DBMS_LOB.OPEN(l_blob, DBMS_LOB.LOB_READWRITE);
dbms_lob.loadfromfile(l_blob,l_bfile,dbms_lob.getlength(l_bfile));
owa_util.mime_header(NVL(vv_mime_type,'application/octet'),FALSE,'UTF-8');
htp.p('Content-Type: ' || vv_mime_type || '; charset=UTF-8');
htp.p('Content-Disposition: inline');
owa_util.http_header_close;
DBMS_LOB.CLOSE(l_bfile);
dbms_lob.close(l_blob);
WPG_DOCLOAD.download_file(l_blob);
DBMS_LOB.FREETEMPORARY(l_blob);
APEX_APPLICATION.STOP_APEX_ENGINE;
ELSE
raise ve_no_file;
END IF;
EXCEPTION
when ve_no_file then
apex_error.add_error (
p_message => 'No file!',
p_display_location => apex_error.c_inline_in_notification );
end;
它显示文件,但编码有问题。我有一个非常相似的页面来下载文件,但差异很小,这很好,编码没有问题
如何强制使用正确的字符集以避免波兰字符集出现问题
编辑:
我注意到这个文件有ASCII编码。当我把文件的编码改为UTF-8时,APEX显示的文件是正确的。
如何在从文件加载时转换blob中的characterset,或者如何在加载时设置文件的characterset