1

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

3 回答 3

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);

现在已解决并将阿拉伯语单词保存到数据库中。

有关更多详细信息,请查看

于 2012-06-06T03:48:19.027 回答
0

在命令行中,您需要将代码页设置为1256(阿拉伯语)。但是在数据库中存储阿拉伯语文本,需要将列数据设置为 UTF-8。此外,请确保您的字符集设置为 UTF-8(如果您正在创建网页)。

于 2012-05-09T07:48:02.693 回答
0

我建议您一直使用 UTF-8,即在网页中、在 Eclipse 和您的源代码中以及在数据库中(NLS_CHARACTERSET 或将列定义为 NVARCHAR2)。这样你就不需要转换了。

于 2015-10-04T17:27:19.250 回答