JTable 中的 UTF-8

发布于 2024-10-09 00:27:53 字数 71 浏览 0 评论 0原文

如何将 UTF-8 字符串添加到 JTable 中? ASCII 范围内的字符串看起来没问题,但带有重音符号的字符无法正确显示。

How can I add UTF-8 Strings into a JTable? Strings in the ASCII range look ok, but characters that have accents aren't showing up properly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鹿! 2024-10-16 00:27:53

我在读取字符串时没有将阅读器设置为 UTF-8 编码。
更改

BufferedReader br = new BufferedReader(new InputStreamReader(di));

BufferedReader br = new BufferedReader(new InputStreamReader(di, "UTF-8"));

文本后正确显示。

I was reading in the strings without setting the reader to a UTF-8 encoding.
After changing

BufferedReader br = new BufferedReader(new InputStreamReader(di));

to

BufferedReader br = new BufferedReader(new InputStreamReader(di, "UTF-8"));

the text showed up correctly.

懷念過去 2024-10-16 00:27:53

alt text

上面是 JTable 中的一行(屏幕截图),其中故意插入了普通重音字符。 JTable 是普通的 JTable,没有任何特殊修改来容纳或接受特殊字符。

重音字符定义如下:http://tlt.its.psu。 edu/suggestions/international/accents/codealt.html

源代码:

JTable table = new javax.swing.JTable();
DefaultTableModel model = null;

public void initTableModel() {
    model = new DefaultTableModel();
    table.setModel(model);
    model.addColumn("col1");
    model.addColumn("col2");
    ListSelectionModel selectionModel = table.getSelectionModel();
    selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    ListSelectionModel rowSM = table.getSelectionModel();
    table.removeAll();
    table.getColumnModel().getColumn((model.getColumnCount() - 1)).setPreferredWidth(200); 
}

public void initTableData() {
    int numrows = model.getRowCount();
    for (int i = numrows - 1; i >= 0; i--) {
        model.removeRow(i);
    }

    String[] row = new String[3];
    if (pass != null) {
            row[0] = "Lü Dongbin呂洞賓Lán Cǎihé";
            row[1] = "《全唐詩》ó, ò, ñ";
            model.addRow(row);
    }
    validate();
    repaint();
}

整个 Java 源代码:http://ahb .me/1exq(更准确且经过测试)

这是您想要的代码吗?

alt text

Above is a row in JTable (a screenshot) with normal accent characters deliberately inserted into it. The JTable is the usual one without any special modifications to accomodate or accept special characters.

Accent characters as defined in: http://tlt.its.psu.edu/suggestions/international/accents/codealt.html

Source code:

JTable table = new javax.swing.JTable();
DefaultTableModel model = null;

public void initTableModel() {
    model = new DefaultTableModel();
    table.setModel(model);
    model.addColumn("col1");
    model.addColumn("col2");
    ListSelectionModel selectionModel = table.getSelectionModel();
    selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    ListSelectionModel rowSM = table.getSelectionModel();
    table.removeAll();
    table.getColumnModel().getColumn((model.getColumnCount() - 1)).setPreferredWidth(200); 
}

public void initTableData() {
    int numrows = model.getRowCount();
    for (int i = numrows - 1; i >= 0; i--) {
        model.removeRow(i);
    }

    String[] row = new String[3];
    if (pass != null) {
            row[0] = "Lü Dongbin呂洞賓Lán Cǎihé";
            row[1] = "《全唐詩》ó, ò, ñ";
            model.addRow(row);
    }
    validate();
    repaint();
}

Entire Java source code: http://ahb.me/1exq (More accurate and tested)

Is this the codes you wanted ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文