当前位置:  开发笔记 > 编程语言 > 正文

在显示HTML时,JEditorPane是否有Charset问题?

如何解决《在显示HTML时,JEditorPane是否有Charset问题?》经验,为你挑选了1个好方法。

我有以下代码:

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;


public class ScratchPad {

    public static void main(String args[]) throws Exception {
        String html =""+
""+
""+ // this is the problem right here
"Error 400 BAD_REQUEST"+
""+
""+
"

HTTP ERROR: 400

BAD_REQUEST
"+ "

RequestURI=null

"+ "

Powered by jetty://

"+ ""+ ""; JFrame f = new JFrame(); JEditorPane editor = new JEditorPane(); editor.setEditable( false ); editor.getDocument().putProperty( "Ignore-Charset", "true" ); // this line makes no difference either way editor.setContentType( "text/html" ); editor.setText( html ); f.add( new JScrollPane(editor, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER) ); f.pack(); f.setVisible( true ); } }

如果你运行它,你会发现框架是空白的.但是,如果我从元标记中删除"; charset = ISO-8859-1",则会显示HTML.任何想法为什么以及我能做些什么来防止这种情况(除了手动黑客攻击我无法控制的HTML字符串...).

编辑#1 - putProperty("Ignore-Charset","true")遗憾地没有任何区别.



1> Horcrux7..:

使用setText之前和setContentType之后的跟随行.

editor.getDocument().putProperty("IgnoreCharsetDirective", Boolean.TRUE);

这是一个神秘的无证功能.setContentType创建一个新文档,如果之前设置它,它将无效.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有