2009-08-03 30 views
5

Tôi gặp sự cố tại thời điểm môi trường thử nghiệm của tôi không bền bỉ ký tự nhãn hiệu "™" trong cơ sở dữ liệu. Khi tôi nhập vào dữ liệu biểu mẫu, sau đó gửi nó, tôi có thể thấy rằng ở phía máy chủ, yêu cầu có ký tự được mã hóa chính xác ™, nhưng sau đó khi gọi phương thức "saveOrUpdate()" của hibernate, dữ liệu trong bảng hiển thị dưới dạng dấu chấm hỏi.Hibernate Oracle và Character Encoding

Im sử dụng SqlDeveloper để kiểm tra bảng và tôi có thể thay đổi ký tự thành một bằng tay bằng cách dán trực tiếp vào hàng rồi cam kết và nó hoạt động.

Vì vậy, tôi đã đưa ra giả thiết rằng các phương thức ngủ đông đang hoạt động không chính xác.

Im thua lỗ ở đây, thực sự, tôi chỉ không biết những gì để cố gắng, tôi đã thiết lập:

<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">utf-8</property> 

thuộc tính trong tập tin cấu hình, không có may mắn.

Cột của tôi trong bảng là NVARCHAR2 (400 CHAR) (mặc dù chúng ban đầu, chỉ VARCHAR2 để bắt đầu, nhưng tôi đã thay đổi chúng trong khi gỡ lỗi vấn đề này).

Mọi trợ giúp ở đây đều được đánh giá cao.

Đánh dấu

Trả lời

6

Ok, vì vậy nó chỉ ra rằng những gì tôi cần làm là thiết lập các defaultNChar tài sản kết nối đến đúng.

Tôi đã thực hiện việc này thông qua tệp ngữ cảnh cho ứng dụng của tôi trong Tomcat.

Bài viết khai sáng cho tôi là here.

+0

Xin chào MArk, chúng tôi không sử dụng NCHAR nhưng chúng tôi đang đối mặt với vấn đề với nhân vật Bắc Âu. Chúng là một phần của ISO-8859-1. Có vẻ như trong khi viết vào cơ sở dữ liệu nó có một số phép thuật. –

+0

liên kết giờ đã chết ... :( – xenoterracide