是否可以从JTextField读取各种不同的语言?

时间:2012-11-09 19:52:21

标签: java swing localization jtextfield

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

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

2 个答案:

答案 0 :(得分:3)

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

enter image description here

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

Debug in 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);
        }

    }
}

答案 1 :(得分:1)

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

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