Narisa.com: ปัญหาภาษาไทย จากการใช้ Java กับ Mysql - Narisa.com

Jump to content

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

ปัญหาภาษาไทย จากการใช้ Java กับ Mysql Rate Topic: -----

#1 User is offline   Save 

  • Junior Member
  • Pip
  • Group: Members
  • Posts: 56
  • Joined: 02-January 04

Posted 03 January 2004 - 06:17 AM

อยากทราบการแก้ภาษาครับ java กับ Mysql
เมื่อเราดึง ข้อมูลมาดู ทำไม่ถึงไม่เป็นภาษาไทยครับ มีวิธีการแก้หรือป่าวครับ ตอน Insert เป็นภาษไทยครับ
0

#2 User is offline   homy 

  • Star
  • View blog
  • Group: Star
  • Posts: 962
  • Joined: 08-October 03

Posted 03 January 2004 - 08:05 AM

ไม่ทราบว่าคุณ Save ใช้จาวาอะไรในการพัฒนาเหรอคะ
Java Application , Java Applet , JSP หรือ Servlet คะ :-?

โฮ
0

#3 User is offline   d-_-b 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 26
  • Joined: 19-April 03

Posted 03 January 2004 - 01:13 PM

การเก็บภาษาไทยใน MySQL จะเก็บเป็น ASCII ครับดังนั้นจะต้องมี method ที่จะเปลี่ยนให้เ UNICODE ให้เป็นรหัส ASCII ก่อน insert อะครับ
public class ThaiUtil {

    

    /** Creates a new instance of ThaiUtil */

    public static String Unicode2ASCII(String unicode) {

        StringBuffer ascii = new StringBuffer(unicode);

        int code;

        for(int i = 0; i < unicode.length(); i++) {

            code = (int)unicode.charAt(i);

            if ((0xE01<=code) && (code <= 0xE5B ))

                ascii.setCharAt( i, (char)(code - 0xD60));

        }

        return ascii.toString();

    }

    

    public static String ASCII2Unicode(String ascii) {

        StringBuffer unicode = new StringBuffer(ascii);

        int code;

        for(int i = 0; i < ascii.length(); i++) {

            code = (int)ascii.charAt(i);

            if ((0xA1 <= code) && (code <= 0xFB))

                unicode.setCharAt( i, (char)(code + 0xD60));

        }

        return unicode.toString();

    }

    

}

0

#4 User is offline   Save 

  • Junior Member
  • Pip
  • Group: Members
  • Posts: 56
  • Joined: 02-January 04

Posted 03 January 2004 - 03:42 PM

ผมใช้ java acpplication ครับ
0

#5 User is offline   Save 

  • Junior Member
  • Pip
  • Group: Members
  • Posts: 56
  • Joined: 02-January 04

Posted 03 January 2004 - 04:37 PM

ผมต้องขอบคุณมากครับที่ให้แนะนำผม แต่ โคด ข้างบนผมนำไปใช้ไม่ถูกครบไม่รู้จะใสไว้ตรงไหน
ถ้าเปรียบเทียบกับหัวข้อเรือง (รบกวนเรื่อง Mysql หน่อยครับ ของคุณ Sorut ) เราจะใส่ไว้ตรงไหนครับ เพราะผมดู source Code แล้วหน้าสนครับ
รบกวนหน่อยครับผมไม่ค่อยเก่งคับ
0

#6 User is offline   d-_-b 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 26
  • Joined: 19-April 03

Posted 03 January 2004 - 05:33 PM

String value="ทดสอบ";

String sql="INSERT INTO ชื่อตาราง(field1) VALUES('"+ThaiUtil.Unicode2ASCII(value)+"')";


ตัวอย่างการใช้ลองดูนะครับ
0

#7 User is offline   Sorut 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 7
  • Joined: 01-January 04

Posted 04 January 2004 - 04:42 AM

ผมลองใช้แทนคุณ save แล้วครับ มี Error คับช่วยแนะนำหน่อยครับ
---------- Compile ----------
C:java1inputexmysql.java:100: inner classes cannot have static declarations
public static String Unicode2ASCII(String unicode) {
^
C:java1inputexmysql.java:111: inner classes cannot have static declarations
public static String ASCII2Unicode(String ascii) {
^
2 errors
Normal Termination
Output completed (1 sec consumed).


แต่พอผมเอา static ออก ก็จะเป็นอย่างนี้ครับ

---------- Compile ----------
C:java1inputexmysql.java:72: non-static method Unicode2ASCII(java.lang.String) cannot be referenced from a static context
stmt2.executeUpdate(" INSERT INTO tablename(Name,Lastname) VALUES (' "+ThaiUtil.Unicode2ASCII(a.getText( ))+" ' ,' "+ThaiUtil.Unicode2ASCII(b.getText( ))+" ')");
^
C:java1inputexmysql.java:72: non-static method Unicode2ASCII(java.lang.String) cannot be referenced from a static context
stmt2.executeUpdate(" INSERT INTO tablename(Name,Lastname) VALUES (' "+ThaiUtil.Unicode2ASCII(a.getText( ))+" ' ,' "+ThaiUtil.Unicode2ASCII(b.getText( ))+" ')");
^
2 errors
Normal Termination
Output completed (1 sec consumed).


ผมแก้ไข้ตรงนี้ครับ
[color="green"][color=green]stmt2.executeUpdate(" INSERT INTO tablename(Name,Lastname) VALUES (' "+ThaiUtil.Unicode2ASCII(a.getText( ))+" ' ,' "+ThaiUtil.Unicode2ASCII(b.getText( ))+" ')");

0

#8 User is offline   d-_-b 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 26
  • Joined: 19-April 03

Posted 05 January 2004 - 03:06 PM

ผมว่าคงจะเป็นเพราะคุณได้เอาโคดข้างบนไปใส่ใน class ของคุณ ทางที่ดีคุณคววรนำคลาสข้างบนไปสร้างใหม่ใน package เดียวกับ class ที่คุณจะนำไปใช้นะครับ
ลองดูอีครั้งนะครับ
0

#9 User is offline   นายข้าวโพดหวาน 

  • Committee
  • View blog
  • Group: Committee
  • Posts: 7075
  • Joined: 01-April 03

Posted 08 January 2004 - 07:02 AM

Quote

C:java1inputexmysql.java:100: inner classes cannot have static declarations
public static  String Unicode2ASCII(String unicode) {  
                     ^


เมดธอดที่นิยามเป็นแบบ static ไม่สามารถนิยามใน Inner class ได้ครับ ลองย้ายเมดธอดนี้ไปอยู่ในระดับเดียวกับ class

public class A {

  private class B {

  ...

    public static void methodC() { // นิยามตรงนี้ไม่ได้

    ...

    }

  }

}

ลองแก้เป็น
public class A {

  public static void methodC() { // นิยามในระดับนี้แทน

   ...

  }

  private class B {

  ... // คราวนี้ B เรียกใช้ methodC(); ได้แล้ว

  }

}

0

#10 User is offline   นายข้าวโพดหวาน 

  • Committee
  • View blog
  • Group: Committee
  • Posts: 7075
  • Joined: 01-April 03

Posted 08 January 2004 - 07:05 AM

Quote

[color=darkred]แต่พอผมเอา static ออก ก็จะเป็นอย่างนี้ครับ

---------- Compile ----------
C:java1inputexmysql.java:72: non-static method Unicode2ASCII(java.lang.String) cannot be referenced from a static context
  stmt2.executeUpdate(" INSERT INTO tablename(Name,Lastname) VALUES (' "+ThaiUtil.Unicode2ASCII(a.getText( ))+" ' ,' "+ThaiUtil.Unicode2ASCII(b.getText( ))+" ')");  


แปลกใจที่ว่าทำไม stmt2 นิยามเป็นตัวแปร static หรือครับ ทำไมถึงฟ้องว่าไม่สามารถอ้างถึงเมดธอด Unicode2ASCII ได้
0

#11 User is offline   Save 

  • Junior Member
  • Pip
  • Group: Members
  • Posts: 56
  • Joined: 02-January 04

Posted 11 January 2004 - 03:33 AM

ยังไม่ได้ครับ เรื่องภาษา
0

#12 User is offline   นายข้าวโพดหวาน 

  • Committee
  • View blog
  • Group: Committee
  • Posts: 7075
  • Joined: 01-April 03

Posted 11 January 2004 - 07:12 AM

Quote

ยังไม่ได้ครับ เรื่องภาษา


อืม ตกลงได้ลองวิธีไหนไปแล้วบ้างครับ ที่บอกว่ายังไม่ได้หมายความว่าตอนนี้โปรแกรมคอมไพล์และรันผ่านแล้วแต่ยังแสดงภาษาไทย
ไม่ได้ใช่มั้ยครับ ขอข้อมูลเพิ่มเติมด้วยครับ
0

#13 User is offline   Save 

  • Junior Member
  • Pip
  • Group: Members
  • Posts: 56
  • Joined: 02-January 04

Posted 11 January 2004 - 05:53 PM

ได้แล้วครับ ผมแก้เป็นภาษาไทยได้แล้ว เอาไว้ใน class เดี่ยวกัน หรือไว้เป็น package ก็ได้แต่ต้องเรียกใช้แบบข้างล้างน๊ะครับ(ทั้งแบบ classและ package) ผมลองเช็คกับ mysql front ครับ เมื่อก่อนเป็นแบบนี้ ?????????? แต่ตอนนี้เป็นภาษาไทยแล้วครับ

VALUES (' "+new ThaiUtil().Unicode2ASCII(a.getText( ))+" ' ,' "+new ThaiUtil().Unicode2ASCII(b.getText( ))+" ')"


ขอบคุณทุกท่านมากครับ
0

#14 User is offline   นายข้าวโพดหวาน 

  • Committee
  • View blog
  • Group: Committee
  • Posts: 7075
  • Joined: 01-April 03

Posted 11 January 2004 - 11:08 PM

ดีใจด้วยครับ
0

#15 User is offline   homy 

  • Star
  • View blog
  • Group: Star
  • Posts: 962
  • Joined: 08-October 03

Posted 12 January 2004 - 06:14 PM

ยินดีด้วยค่ะ :P

โฮ
0

Share this topic:


  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users