IT_Expert/Java & Jsp | Posted by 낫기법필 2011. 11. 11. 13:53

JAVA 한글 유니코드 변환

[쥔장]============================================
한글 관련 처리 문제로 이런저런 것을 알아보다가 발견한 것이여서
혹시나 나중에 필요할 때가 있을 것 같아 스크랩해놓음.

출처는 아래 참고.
==================================================

package test;

import java.awt.Rectangle;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 * @author JunSeong
 *
 */
public class UniCodeConvert extends JFrame {

 private static final long serialVersionUID = 1L;
 private JPanel jContentPane = null;
 private JTextField jTextField = null;
 private JButton jButton = null;
 private JTextArea jTextArea = null;

 /**
  * This is the default constructor
  */
 public UniCodeConvert() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(633, 199);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.add(getJTextField(), null);
   jContentPane.add(getJButton(), null);
   jContentPane.add(getJTextArea(), null);
  }
  return jContentPane;
 }

 /**
  * This method initializes jTextField
  * 
  * @return javax.swing.JTextField
  */
 private JTextField getJTextField() {
  if (jTextField == null) {
   jTextField = new JTextField();
   jTextField.setBounds(new Rectangle(15, 14, 393, 42));
  }
  return jTextField;
 }

 /**
  * This method initializes jButton
  * 
  * @return javax.swing.JButton
  */
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle(435, 17, 159, 37));
   jButton.setText("변 환");
   jButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
     String text =  getJTextField().getText();
     if(text == null) {
      return;
     }
     text = text.trim();
     char[] chBuffer = text.toCharArray();
     StringBuffer buffer = new StringBuffer();
    
     for (int i = 0; i < chBuffer.length; i++) {
      if(((int) chBuffer[i] == 32)) {
       buffer.append(" ");
       continue;
      }
      buffer.append("\\u");
      buffer.append(Integer.toHexString((int) chBuffer[i]));
     
     }
    
     getJTextArea().setText(buffer.toString());
    }
   });
  }
  return jButton;
 }

 /**
  * This method initializes jTextArea
  * 
  * @return javax.swing.JTextArea
  */
 private JTextArea getJTextArea() {
  if (jTextArea == null) {
   jTextArea = new JTextArea();
   jTextArea.setBounds(new Rectangle(22, 84, 574, 58));
  }
  return jTextArea;
 }

}  //  @jve:decl-index=0:visual-constraint="10,10"


 

 

소스는 위에 부분이고 , 실행하면 화면은 아래와 같아요???? 라고 할라고 했는데 짜증나게 이미지도 못 올리게 해놨네;;;;

그래서 본사 원격으로 ㄱㄱ     ;;;;;

 

 

 

아무든 스윙기반으로 임시방편으로 만든 겁니다.

텍스프 필드에 한글 넣으시고 변환 버튼 누르시면 , 텍스트 에어리어에 변환된 유니코드 나옵니다.

 

1칸의 공백은 따로 변환안하고 공백으로 처리합니다. 그외의 공백은 처리를 하지 않아서 처리를 해야 한다면 따로 처리를 해야 합니다.

변환 처리 부분은

 

jButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
     String text =  getJTextField().getText();
     if(text == null) {
      return;
     }
     text = text.trim();
     char[] chBuffer = text.toCharArray();
     StringBuffer buffer = new StringBuffer();
    
     for (int i = 0; i < chBuffer.length; i++) {
      if(((int) chBuffer[i] == 32)) {
       buffer.append(" ");
       continue;
      }
      buffer.append("\\u");
      buffer.append(Integer.toHexString((int) chBuffer[i]));
     
     }
    
     getJTextArea().setText(buffer.toString());
    }
   });

 

이 부분이니 이 부분을 수정 및 고치시면 됩니다.



<<endline=======================================