PDA

View Full Version : [Q] Help, lập trình JSP và database SQL server (Unicode)



phong
23-10-2002, 16:05
Hi, Everybody!!

Phong đang làm đồ án JSP và SQL server 2000 (Unicode). Hiện đang gặp rắc rối trong vấn đề hiển thị data Unicode lấy từ databse lên web. (Web server Phong sử dụng là JRun 3.1).

Trên client (IE), Phong đã dùng tag
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Còn về phía server ko biết có cần phải đặt thêm gì nữa không, các bạn có ai biết xin chỉ giáo.

Thanks.

poorguy11385
23-10-2002, 21:52
Try this:

<%@ page contentType = "text/html; charset=UTF8" %>
or with
<%
res.setContentType("text/html; charset=UTF8");
%>

phong
24-10-2002, 12:37
Hi, poorguy11385!!

Vẫn chưa được bạn ơi, vì phong đã viết dòng đó rồi. Nhưng theo Phong nghĩ do JDBC ko hỗ trợ Unicode. Không biết bạn còn cách nào khác ko vậy.

Thanks.

bpmtri
24-10-2002, 13:27
Cái lỗi này mình cũng từng bị khi làm luận văn. Nếu không bị ép buộc gì thì bạn có thể nhập liệu vào CSDL bằng Web dưới encoding UTF-8, thì khi bạn đọc ra từ ra CSDL sẽ không bị vấn đề gì hết. Đừng nhập dữ liệu bằng Unicode trực tiếp vào Database. Hoặc nếu nhập trực tiếp thì bạn chọn cách nhập dạng UTF-8 để nhập nhưng với cách này, bạn sẽ thấy đầu lâu xương sọ trong Database(cách encoding UTF-8).

phong
24-10-2002, 15:04
Đa tạ sư phụ nhiều, nhưng chưa test thử đây nha. Để Phong về test thử coi.

Thanks.

phong
25-10-2002, 08:51
Hi!!!

Các bạn ơi, Phong đã thử như bpmtri rồi nh7ng vẫn ko được. Mã Unicode lỗi ngay khi submit dữ, đương nhiên ko lên unicode khi đưa vào database.


không biết bạn nào biết lỗi này ko xin chỉ giáo.


Thanks.

Boy_next_door
26-10-2002, 00:09
dùng cái này:
<%@ page contentType = "text/html; charset=Unicode" %>

nnduyanh
30-10-2002, 11:23
Chào Phong. Mình cũng đang làm đề tài vể thiết kế Website hỗ trợ xuat khau thủy sản bằng JSP và SQL 7.0. Phong biết gì về JSP thì giúp mình với. Bên ngoài tài liệu về nó ít quá (Tiếng Việt) còn T.Anh thì ko biết sách nào đọc dễ hiểu vì sợ mua nhầm lắm. Giúp mình vời nha Phong. Cám ơn bạn trước. Gởi mail cho mình há : m_thuyen@hotmail.com
Nếu bạn nào có biết thì giúp mình với nha mình cảm ơn lắm lắm.

phong
30-10-2002, 15:36
HI!!

Phong cũng chỉ mới nghiên cứu JSP thôi, Phong co 2 cuon JSP một cuốn tiếng Anh, một cuốn tiếng Việt nó cũng tương đối hay. Nhưng Phong thường xem cuốn JAVA hơn nó đầy đủ hơn (xem JDBC đó).

Nếu bạn cần thì Phong sẽ cho bạn liên lạc với Phong: phongtranhong@yahoo.com

Phong

nganminh
15-12-2003, 17:07
Phong check thu xem cai View\Encoding\UTF8 cua IE xem sao!!!
Tot nhat la viet mot module Convert Ma UTF8 sang Windows-1252, khi do may client ko can phai doi chon lua View\Encoding\UTF8 nua!

Thu xem nhe!

Chuc thanh cong

ILoveJava
19-12-2003, 23:06
Hi, Everybody!!

Phong đang làm đồ án JSP và SQL server 2000 (Unicode). Hiện đang gặp rắc rối trong vấn đề hiển thị data Unicode lấy từ databse lên web. (Web server Phong sử dụng là JRun 3.1).

Trên client (IE), Phong đã dùng tag
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Còn về phía server ko biết có cần phải đặt thêm gì nữa không, các bạn có ai biết xin chỉ giáo.

Thanks.
Thực ra không cần phải làm modul convert từ cái này sang cái kia làm gì phức tạp vấn đề lên. Hơn nữa nhập trực tiếp Unicode vào cơ sở dữ liệu SQL Server hoàn toàn được, quá tốt là đằng khác vấn đề ở đây bạn phải khai báo những thông tin sau trong trang JSP:
<%@ page pageEncoding="UTF-8" language="java"%>
Thêm nữa trong thẻ META cũng khai báo thêm charset=utf-8 cho chắc ăn.
còn ở những trang JSP bắt các Parameter nhập liệu ở các form thì trước khi dùng lệnh request.getParameter() thì bạn khai báo thêm dòng này :
request.setCharacterEncoding("UTF-8");
sau đó mới bắt đầu lấy các parameter để cập nhật vào cơ sở dữ liệu . Mình làm như trên và vấn đề tiếng Việt hiển thị trong trang JSP hoàn toàn xuôn xẻ.

camgiacyeu
17-04-2010, 09:18
Insert tiếng Việt OK....
Mình cũng mất khá nhiều thời gian và đây là kinh nghiêm của mình. Trước tiên mình cảm ơn mọi người đã giúp đỡ mình. Mình hi vọng sẽ tiết kiệm thời gian khi ai mò tới đây:(>>>>mọi người lấy chuỗi kết nối jdbc thôi nhé (cài Sql, port mặc định là 1433 nên không cần phải sửa gì cả). Trong Netbean bạn tìm chỗ Libraries, add file>> sqljdbc.jar(Tìm trên mạng nhé) vì mình ko biết up ở đây hiii.(Thằng bạn dùng jdbc.odbc insert access lỗi nhưng lấy ra OK) Xin cảm ơn mọi người đã giúp đỡ nhau:
public boolean capnhat() {
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;databaseName=Northwind";
Connection con=null;
ResultSet rs=null;
con=DriverManager.getConnection(url,"sa","hi");
Statement stmt=con.createStatement();
rs=stmt.executeQuery("insert into sinhvien values (4,"+"N'"+ hoten+"'"+","+"N'"+ngaysinh+"'"
+","+"N'"+diachi+"'"+","+"N'"+dienthoai+"'"+","+"N'"+email+"'"+","+"N'"+truongtn+"'"+
","+"N'"+nganh+"'"+","
+"N'"+loaitn+"'"+")");
con.close();

}
catch(Exception e)
{
System.out.println(e);
}
return true;

abandonzzz
18-07-2011, 10:35
JDBC hiện nó vẫn chưa hỗ trợ Unicode, bạn kết nối CSDL SQL 2000 thì dùng câu lệnh kết nối thẳng vào, không nên thông qua JDBC và nó sẽ hổ trợ mã NRC Decimal. Khi bạn viết Tiếng Việt thì khi đưa vào CSDL nó sẽ chuyễn unicode sang NRC và khi lôi dữ liệu ra thì nó sẽ làm ngược lại.
Đây là lớp kết nối CSDL:

//package myPack;
public interface AppConstants
{
public static final String driverClass = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final String dbURL= "jdbc:odbc:Driver={SQL Server};Server=tên server;Database=tên database;"; // Đây là câu lệnh kết nối
public static final String dbUser = "";
public static final String dbPassword = "";
public static final String SQLerror = "[Microsoft][ODBC SQL Server Driver][SQL Server]"; // chuỗi lỗi SQL
}