0

我正在尝试从 JTextField 读取字符串,只要字符串是英文的,一切正常。但是,如果我将其更改为韩文或日文,我会在字符串中得到所有一些模糊字符。有没有办法可以用给定的语言读取这些字符串?

例如 JTextField 包含:할로윈 빅 세일 마지막날입니다!字符串读取是:??? ? ?? ??????

4

2 回答 2

3

确保您拥有正确的编码和适当的 IDE。

在此处输入图像描述

在 IntelliJ 中使用 UTF-8 编码进行调试时:

在 IntelliJ 中调试

我使用的代码片段:

import java.awt.*;

import javax.swing.*;

public class I18n {


    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame("i18n");
                I18nView view = new I18nView();
                frame.getContentPane().add(view);
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.setMinimumSize(new Dimension(200, 150));
                frame.setLocationRelativeTo(null); // Center
                frame.pack();
                frame.setVisible(true);
            }
        });
    }

    static class I18nView extends JPanel {
        private String i18n = " 할로윈 빅 세일 마지막날입니다!";
        private JTextField i18nTextField;

        I18nView() {
            createComponents();
            makeLayout();
            test();
        }


        private void createComponents() {
            i18nTextField = new JTextField(i18n);
        }
        private void makeLayout() {
            add(i18nTextField);
        }

        private void test() {
            String another = i18nTextField.getText();
            System.out.println("another = " + another);
        }

    }
}
于 2012-11-09T20:26:44.483 回答
1

您是否检查过用于调试字符串内容的字体是否确实支持这些字符?大多数编码或 UI 字体仅支持欧洲字符。

您可以尝试将字符串编码为 UTF-8,以使用“getBytes”或将字符串写入 UTF-8 文件来实际检查调试器中的字节。

于 2012-11-09T19:55:34.360 回答