我想将阿拉伯语单词保存到oracle数据库中。用户从客户端键入阿拉伯语单词并提交该单词。在客户端,我使用警告打印该单词,显示阿拉伯语文本。但是服务器端显示的单词,java控制台(通过使用Sytem.out.println)为شاØÙØ©
。因此它在db中显示为????
。我看到相关帖子,其中一篇文章讨论在Eclipse中将'文本文件编码'更改为UTF-8,我将'文本文件编码'更改为UTF-8。但是它没有显示像شاØÙØ©
这样的前一个字符。然后我将应用程序的“文本文件编码”更改为UTF-8,然后得到相同的输出。我认为像这样发送到db这个词就是db显示为????
的原因。有什么办法吗?
我的代码是Java
vehicleServiceModel.setVehicleType(request.getParameter("vehicleType"));
System.out.println("vehicle Type : "+vehicleServiceModel.getVehicleType());
客户端
jQuery.ajax({
type: "GET",
cache : false,
url: "addvehicle.htm",
data:{vehName:VehicleName,make:Make,model:Model,color:Color,plateNumber:PlateNumber,driverName:DriverName,vehicleType:VehicleType,vehTimeZone:vehTimeZone},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: Success,
error: Error
});
function Success(data, status) {
//some code
}
答案 0 :(得分:2)
我自己也在回答这个问题。希望这会对其他人有所帮助。
我的问题解决了:
我改变了
在java中:
vehicleServiceModel.setVehicleType(request.getParameter("vehicleType"));
String str = vehicleServiceModel.getVehicleType();
str = new String(str.getBytes("8859_1"), "UTF-8");
System.out.println("vehicle Type : "+str);
vehicleServiceModel.setVehicleType(str);
现在已解决,阿拉伯语单词保存到数据库中。
有关详细信息,请查看this
答案 1 :(得分:0)
在命令行中,您需要将代码页设置为1256(阿拉伯语)。但是将阿拉伯文本存储在数据库中,需要将列数据设置为UTF-8。另外,请确保您的字符集设置为UTF-8(如果您正在进行网页)。
答案 2 :(得分:0)
我建议您一直使用UTF-8,即在网页中,在Eclipse和源代码中,以及在数据库中(NLS_CHARACTERSET或将列定义为NVARCHAR2)。这样您就不需要转换了。