การเก็บภาษาไทยใน MySQL โดยใช้ Java

×

Error message

  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in book_prev() (line 775 of /data/wwwroot/modules/book/book.module).
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /data/wwwroot/includes/common.inc).

วันนี้เขียนจาวาอยู่ เจอปัญหาภาษาไทยเหมือนเดิม อันนี้ก้อบมาคับ ใช้งานได้ดี เหอ ๆ

การเก็บภาษาไทยใน 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();

}

}

ข้อมูลจาก : http://www.narisa.com/forums/index.php?showtopic=2738