Jump to content


Hình ảnh
- - - - -

Tổng kết về sử dụng tiếng Việt trong Java


  • Please log in to reply
12 replies to this topic

#1 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 19 Mar 2006 - 05:39 PM

Đây là bài tập môn Java - phần kỹ năng phân tích và tìm kiếm thông tin - của em !
Post lên cho nó phong phú box :)


ISAS được thực hiện và hoàn thành vào tháng 3 năm 2006 tại NIIT ICT - Hà Nội bởi sinh viên : Bùi Hoài Nam - Lớp B060003

Dưới sự giúp đỡ của giáo viên hướng dẫn : Thầy Đỗ Văn Triển

ISAS tìm hiểu về các vấn đề xoay quanh việc sử dụng và tuỳ biến tiếng Việt trong lập trình Java – cũng như các phương thức nhập liệu,các chương trình hỗ trợ nhập liệu và xử lý tiếng Việt trong Java Application.


  • 0

#2 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 19 Mar 2006 - 05:40 PM

Java là một ngôn ngữ có rất nhiều đặc điểm mạnh có thể kể đến như mã nguồn mở,miễn phí, có nhiều IDE hỗ trợ cho việc lập trình.
Đã từ lâu,Java là một lựa chọn thường được các doanh nghiệp phần mềm tại Việt Nam nói riêng và trên thế giới nói chung hướng đến như một mục tiêu để phát triển.

Ở Việt Nam,tính đến thời điểm này đã có trên 70% các doanh nghiệp phần mềm chú trọng Java và coi Java như ngôn ngữ lập trình được sử dụng thường xuyên tại doanh nghiệp.
Vậy vấn đề cần đặt ra ở đây là làm thế nào để sử dụng và hiển thị một cách hiệu quả tiếng Việt trong Java Application.

I. Đối với JDK ( Java Development Kit )

- Ở các phiên bản JDK trước mà SUN ra mắt,chúng ta có thể nhận thấy rõ rệt khả năng hiển thị Unicode rất yếu kém,chính xác là từ phiên bản 1.3 trở xuống không thể làm được điều này với các bảng mã thông thường ( trừ khi sử dụng xâu ANSI - sẽ nói ở phần tiếp theo )
- Ở phiên bản JDK1.4, đã có một sự thay đổi vượt bậc khi lần đầu tiên Sun đưa ra JDK hỗ trợ multi languages và chúng ta đã có thể sử dụng tiếng Việt ở khá nhiều thành phần của Java như các Frame,Label,Text,Button .v.v Tuy nhiên ở title vẫn còn lỗi do xung đột font chữ.
- Vào ngày 27/05/2004 Sun đã cho ra mắt bản JDK1.5 beta2,bây giờ thì khả năng hỗ trợ multi languages đã khá hoàn mĩ,bạn có thể sử dụng Tiếng Việt ở bất cứ nơi nào trong Java.

II. Đối với IDE ( Integrated Development Environment )

- Có rất nhiều IDE miễn phí sử dụng để coding Java rất hiệu quả.Có thể liệt kê ra một số IDE điển hình như Jbuilder, NetBeans, Jcreator, Jext,Jedit .v.v. Tuy nhiên,trong báo cáo này chúng ta sẽ làm việc với Jcreator.
- Phiên bản yêu cầu là Jcreator 3.5 U ( Bạn có thể download tại địa chỉ http://www.jcreator.com/download )
  • 0

#3 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 19 Mar 2006 - 05:44 PM

III.Hiển thị tiếng Việt trong Java

1. Sử dụng mã ANSI

Đây là bảng mã :

à:\u00e0 á:\u00e1 ả:\u1ea3 ã:\u00e3 ạ:\u1ea1
ă:\u0103 ằ:\u1eb1 ắ:\u1eaf ẳ:\u1eb3 ẵ:\u1eb5 ặ:\u1eb7
â:\u00e2 ầ:\u1ea7 ấ:\u1ea5 ẩ:\u1ea9 ẫ:\u1eab ậ:\u1ead

đ:\u0111

è:\u00e8 é:\u00e9 ẻ:\u1ebb ẽ:\u1ebd ẹ:\u1eb9
ê:\u00ea ề:\u1ec1 ế:\u1ebf ể:\u1ec3 ễ:\u1ec5 ệ:\u1ec7
ò:\u00f2 ó:\u00f3 ỏ:\u1ecf õ:\u00f5 ọ:\u1ecd
ô:\u00f4 ồ:\u1ed3 ố:\u1ed1 ổ:\u1ed5 ỗ:\u1ed7 ộ:\u1ed9
ơ:\u01a1 ờ:\u1edd ớ:\u1edb ở:\u1edf ỡ:\u1ee1 ợ:\u1ee3
ù:\u00f9 ú:\u00fa ủ:\u1ee7 ũ:\u0169 ụ:\u1ee5 
ư:\u01b0 ừ:\u1eeb ứ:\u1ee9 ử:\u1eed ữ:\u1eef ự:\u1ef1

À:\u00c0 Á:\u00c1 Ả:\u1ea2 Ã:\u00c3 Ạ:\u1ea0
Â:\u0102 Ầ:\u1eb0 Ấ:\u1eae Ẩ:\u1eb2 Ẫ:\u1eb4 Ậ:\u1eb6
Ă:\u00c2 Ằ:\u1ea6 Ắ:\u1ea4 Ẳ:\u1ea8 Ẵ:\u1eaa Ặ:\u1eac

Đ:\u0110

È:\u00c8 É:\u00c9 Ẻ:\u1eba Ẽ:\u1ebc Ẹ:\u1eb8 
Ê:\u00ca Ề:\u1ec0 Ế:\u1ebe Ể:\u1ec2 Ễ:\u1ec4 Ệ:\u1ec6
Ò:\u00d2 Ó:\u00d3 Ỏ:\u1ece Õ:\u00d5 Ọ:\u1ec6
Ô:\u00d4 Ồ:\u1ed2 Ố:\u1ed0 Ổ:\u1ed4 Ỗ:\u1ed6 Ộ:\u1ed8
Ơ:\u01a0 Ờ:\u1edc Ớ:\u1eda Ở:\u1ede Ỡ:\u1ee0 Ợ:\u1ee2
Ù:\u00d9 Ú:\u00da Ủ:\u1ee6 Ũ:\u0168 Ụ:\u1ee4
Ư:\u01af Ừ:\u1eea Ứ:\u1ee8 Ử:\u1eec Ữ:\u1eee Ự:\u1ef0

ì:\u00ec í:\u00ed ỉ:\u1ec9 ĩ:\u0129 ị:\u1ecb
Ì:\u00cc Í:\u00cd Ỉ:\u1ec8 Ĩ:\u0128 Ị:\u1eca
ỳ:\u1ef3 ý:\u00fd ỷ:\u1ef7 ỹ:\u1ef9 ỵ:\u1ef5
Ỳ:\u1ef2 Ý:\u00dd Ỷ:\u1ef6 Ỹ:\u1ef8 Ỵ:\u1ef4

Để lập trình tiếng Việt,các bạn sử dụng bảng mã trên để hiển thị tiếng Việt.
Sau đây là ví dụ :

import java.awt.*;
import javax.swing.*;

[color=blue;]public[/color] [color=blue;]class[/color] TiengVietDemo [color=blue;]extends[/color] JFrame{    
    JPanel content;    
    JLabel lb;    
    JButton bt;    
    JTextField tf;    
[color=blue;]public[/color] TiengVietDemo(String title)
    {        
        super(title);    
        content = (JPanel)[color=blue;]this[/color].getContentPane();    
        content.setLayout([color=blue;]new[/color] FlowLayout());    
        lb = [color=blue;]new[/color] JLabel([color= red;]"Nhãn ti\u1EBFng Vi\u1EC7t"[/color]);  
        bt = [color=blue;]new[/color] JButton([color= red;]"Nút b\u1EA5m ti\u1EBFng Vi\u1EC7t"[/color]);     
        tf = [color=blue;]new[/color] JTextField([color= red;]"Gõ text ti\u1EBFng Vi\u1EC7t vào \u0111ây"[/color]);     
        content.add(lb);    
        content.add(bt);
        content.add(tf);    
    }    
        [color=blue;]public[/color] [color=blue;]static[/color] [color=blue;]void[/color] main(String args[])
        {    
            TiengVietDemo f = [color=blue;]new[/color] TiengVietDemo([color= red;]"Thanh tiêu \u0111\u1EC1"[/color]);      
            f.setSize(400,200);    
            f.show();
        }
}

Sau khi viết xong chương trình,bạn save lại ( không dịch bằng Jcreator ).
Vào Start => Run => Gõ cmd => Enter
Dịch file với dòng lệnh

C:\đường dẫn jdk\bin\javac C:\TiengVietDemo.java –encoding utf8
Sau khi dịch xong,chạy file với lệnh

C:\java TiengVietDemo

Kết quả chương trình sẽ hiển thị như sau :

Posted Image

Các bạn có thể nhập liệu bình thường vào TextField với Unikey – Bảng mã Unicode.

Sẽ rất khó khăn khi phải nhớ hết bảng mã đó.Tuy nhiên lại may mắn rằng chúng ta có một phần mềm để chuyển mã.
Nó có tên là : VietUniToJavaString
Tác giả : Nguyễn Đức Thành – K48 – ĐH Công nghệ - ĐHQG Hà Nội.

Chỉ với các thao tác đơn giản gồm nhập xâu tiếng Việt mã Unicode,sau đó click vào nút chuyển => Ta sẽ được xâu ký tự sử dụng trong Java

Posted Image

Các bạn có thể load phần mềm này trong file đính kèm với bài viết !

Tệp đính kèm


Bài viết này được chỉnh sửa bởi hacker_niit: 19 Mar 2006 - 05:46 PM

  • 0

#4 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 19 Mar 2006 - 05:48 PM

Khả năng nhận biết tiếng Việt của java không dừng lại ở đó,sau đây là Java Application với font TCVN3 ( 1byte )

2.Sử dụng font TCVN3

Đây là đoạn mã với font TCVN3 ( Chọn font .VNTimes chẳng hạn )

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

[color=blue;]public[/color] [color=blue;]class[/color] sample [color=blue;]extends[/color] JFrame
{
[color=blue;]private[/color] Container cc;
[color=blue;]private[/color] JButton button;
[color=blue;]private[/color] JLabel label;
[color=blue;]private[/color] JTextField textfield;
[color=blue;]public[/color] sample()
{
super([color= red;]"Vietnam"[/color]);
cc=getContentPane();
cc.setLayout(null);

label=[color=blue;]new[/color] JLabel([color= red;]"§©y lµ ch¬¬ng tr×nh kiÓm tra font viÖt"[/color]);
label.setFont([color=blue;]new[/color] Font([color= red;]".VnTime"[/color],Font.BOLD,15));
label.setBounds(10,20,340,20);
cc.add(label);

textfield=[color=blue;]new[/color] JTextField([color= red;]"Gâ thö vµo ®©y"[/color]);
textfield.setFont([color=blue;]new[/color] Font([color= red;]".VnTime"[/color],Font.PLAIN,15));
textfield.setBounds(10,50,340,20);
cc.add(textfield);

button=[color=blue;]new[/color] JButton([color= red;]"ChÊp nhËn"[/color]);
button.setFont([color=blue;]new[/color] Font([color= red;]".VnTime"[/color],Font.PLAIN,15));
button.setBounds(80,80,150,30);
cc.add(button);

}
[color=blue;]public[/color] [color=blue;]static[/color] [color=blue;]void[/color] main (String arg[])
{
sample sam=[color=blue;]new[/color] sample();
sam.setSize(350,200);
sam.setVisible([color=blue;]true[/color]);
}
}

Sau đó save file lại dưới tên sample.java

Không dịch bằng trình biên dịch mà sử dụng Dos để dịch.
Dịch file với dòng lệnh

C:\đường dẫn jdk\bin\javac C:\sample.java
Sau khi dịch xong,chạy file với lệnh

C:\java sample

Kết quả chương trình sẽ hiển thị như sau :

Posted Image

Sử dụng một chương trình gõ văn bản như Unikey hay Vietkey để nhập liệu.Khi nhập liệu sử dụng bảng mã TCVN3.

Bài viết này được chỉnh sửa bởi hacker_niit: 19 Mar 2006 - 05:49 PM

  • 0

#5 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 19 Mar 2006 - 05:50 PM

Như đã thấy,ngoài việc nhận biết mã ANSI,mã tiếng Việt 1byte …Java còn có thể nhận biết mã tiếng Việt 2byte(Unicode ).

3.Sử dụng mã tiếng Việt 2byte

Đây là đoạn mã ( Mở NotePad – Sau đó save dưới encoding = unicode )

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

[color=blue;]public[/color] [color=blue;]class[/color] sample1 [color=blue;]extends[/color] JFrame
{
[color=blue;]private[/color] Container cc;
[color=blue;]private[/color] JButton button;
[color=blue;]private[/color] JLabel label;
[color=blue;]private[/color] JTextField textfield;
[color=blue;]public[/color] sample1()
{
super([color= red;]"Vietnam"[/color]);
cc=getContentPane();
cc.setLayout(null);

label=[color=blue;]new[/color] JLabel([color= red;]"Đây là chương trình kiểm tra font việt"[/color]);
label.setFont([color=blue;]new[/color] Font([color= red;]"Times New Roman"[/color],Font.BOLD,15));
label.setBounds(10,20,340,20);
cc.add(label);

textfield=[color=blue;]new[/color] JTextField([color= red;]"Gõ thử vào đây"[/color]);
textfield.setFont([color=blue;]new[/color] Font([color= red;]"Times New Roman"[/color],Font.PLAIN,15));
textfield.setBounds(10,50,340,20);
cc.add(textfield);

button=[color=blue;]new[/color] JButton([color= red;]"Chấp nhận"[/color]);
button.setFont([color=blue;]new[/color] Font([color= red;]"Times New Roman"[/color],Font.PLAIN,15));
button.setBounds(80,80,150,30);
cc.add(button);



}
[color=blue;]public[/color] [color=blue;]static[/color] [color=blue;]void[/color] main (String arg[])
{
sample1 sam=[color=blue;]new[/color] sample1();
sam.setSize(350,200);
sam.setVisible([color=blue;]true[/color]);
}
}

Sau đó save file lại dưới tên sample1.java

Không dịch bằng trình biên dịch mà sử dụng Dos để dịch.
Dịch file với dòng lệnh

C:\đường dẫn jdk\bin\javac –encoding unicode C:\sample1.java
Sau khi dịch xong,chạy file với lệnh

C:\java sample1

Kết quả chương trình sẽ hiển thị như sau :

Posted Image

Sử dụng một chương trình gõ văn bản như Unikey hay Vietkey để nhập liệu.Khi nhập liệu sử dụng bảng mã Unicode.
  • 0

#6 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 19 Mar 2006 - 05:52 PM

IV.Trình biên tập phương thức nhập liệu đa nền tảng


MÔ TẢ
Các phương thức nhập liệu là các thành phần bằng phần mềm thực hiện nhiệm vụ thông dịch các thao tác của người sử dụng như gõ bàn phím, nói, hoặc viết với một thiết bị bút để tạo ra các chuỗi văn bản gửi vào cho các ứng dụng. Các phương thức nhập liệu phổ biến nhất là các phương thức cho phép người sử dụng nhập các văn bản bằng các ngôn ngữ Việt, Hàn, Nhật, Hán với hàng nghìn kí tự khác nhau thông qua một bàn phím thông thường. Bản văn được gõ vào theo hình thức mà một bàn phím thông thường có thể xử lý được, ví dụ như hình thức chữ La Tinh rồi sau đó chúng được chuyển đổi thành dạng thức đúng như ý muốn.

........

< Đoạn sau các bạn có thể đọc tại http://vietunicode.sourceforge.net bao gồm giới thiệu về VietIME,cách config khi sử dụng các phiên bản JDK < 1.4.2 )


=========

Có ai hứng thú bàn luận về vấn đề này không nhỉ :D
  • 0

#7 sydk

sydk

    Thành viên sơ cấp

  • Thành viên
  • PipPip
  • 68 bài viết
  • Giới tính:Nam
  • Nơi sống:Thanh hóa

Gửi lúc 18 Aug 2006 - 02:54 AM

Bài viết của U khá hay đấy. Có thể nói U là người khá nhiệt tình.

Dùng cách của U cũng ổn nhưng theo tôi U nên viết một cái thư viện nho nhỏ. Load tiếng việt từ một file text rồi fill vào các biến thay vào các chỗ mà U muốn nhúng text. Chứ nhúng thẳng vào code. Khi sửa lại mà chương trình lớn chắc chết luôn.
Đấy là tui ý kiên thế thôi. Chứ làm một 2 form thì việc đó là không cần thiết. ;))
  • 0

#8 cemetery

cemetery

    .:: Bò Thịt Hâm Nóng ::.

  • Moderators
  • PipPipPipPipPip
  • 900 bài viết
  • Giới tính:Nam
  • Nơi sống:Bangalore, India
  • Sở thích:Mèo ^_^

Gửi lúc 26 Mar 2007 - 08:45 PM

Có bác PM tớ trình bày là không load được file convert, tớ reupload lại nhé :)

Tệp đính kèm


  • 0

#9 ltpm

ltpm

    Tiêu đề gì chứ

  • Moderators
  • PipPipPipPipPip
  • 1076 bài viết
  • Giới tính:Nam
  • Nơi sống:Nhìn lên trên kia kìa, cao lắm. Trên cả mấy ấy. Đấy đấy... thấy chưa :)
  • Sở thích:đứng ở VIỆT NAM, tè sang đất tàu

Gửi lúc 25 Feb 2008 - 06:52 AM

Mình thấy nhiều người không làm được điều này, trừ khi dùng NetBeans.
Up lên để ai chưa biết có thể đọc

  • 0

#10 dinhdaigia

dinhdaigia

    kiếp nổi loạn

  • Thành viên
  • PipPip
  • 78 bài viết
  • Giới tính:Nam

Gửi lúc 25 Feb 2008 - 11:11 AM

Thế bác ơi cho em hỏi!
Làm thế nào để có thể hiển thị tiếng Việt trên giao diện Console của MS-Dos nhi?(Viết bằng Java)
Bác nào biết xin trả lời hộ em với!
  • 0




0 người đang đọc chủ đề này

0 thành viên, 0 khách, 0 thành viên ẩn