如何将阿拉伯语单词保存到oracle数据库中?

时间:2012-05-09 07:20:02

标签: java encoding character arabic

我想将阿拉伯语单词保存到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
     }

3 个答案:

答案 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)。这样您就不需要转换了。