我如何使用正确的字符串字符集编码将字符串从 dao 发送到 jsp 并显示它?

Posted

技术标签:

【中文标题】我如何使用正确的字符串字符集编码将字符串从 dao 发送到 jsp 并显示它?【英文标题】:how do i use right string charset encoding for sending strings from dao to jsp and show it? 【发布时间】:2017-12-28 23:57:07 【问题描述】:

产品型号:

public class product 
    private String productName;
    private String productCategory;
    private String productDescription;
    private double productPrice;
    private String productCondition;
    private String productStatus;
    private int unitInStatus;
    private String productManufacturer;

getter 和 setter . . .

道:

String myString="عروسک خرس";
    byte[] ptext=myString.getBytes("UTF-8");
    String out=new String(ptext,"UTF-8");
    product1.setProductName(out);


    product1.setProductCategory("عروسک");
    product1.setProductDescription("عرسک پول?ش? قابل شستشو");

jsp:

<td>$product.productName</td>
   <td>$product.productCategory</td>
   <td>$product.productCondition</td>
   <td>$product.productPrice</td>

结果:

نام محصول   دسته    شریایظ  (تومان) قیمت
���Ә ���    ���Ә    ��?�    15000.0

【问题讨论】:

product.productCondition 在 DAO 中是什么样的?您显示了其他字段,但没有显示这个?你能编辑你的问题吗? 产品是模型,产品条件是其领域之一 在DAO中将string转为UTF-8再转回string的目的是什么??? 我写它是为了告诉别人这不是答案,因为有人认为它是答案而它没有效果 【参考方案1】:

这与操作系统有关。我将我的操作系统从寡妇更改为 linux

【讨论】:

【参考方案2】:

这里可能有一个问题:

String myString = "عروسک خرس";

这里编辑器必须使用与java编译器javac/jspc相同的编码。如果文件从 Windows 移动到 Linux(如前所述),默认编码可能会改变。

用 u-escaping 检查这个。

String myString = "\u0639\u0631\u0648\u0633"
        + "\u06A9\u0020\u062E\u0631\u0633";

在项目中指定编码。

以下不需要

byte[] ptext = myString.getBytes("UTF-8");
String out = new String(ptext,"UTF-8");

【讨论】:

以上是关于我如何使用正确的字符串字符集编码将字符串从 dao 发送到 jsp 并显示它?的主要内容,如果未能解决你的问题,请参考以下文章

如何知道std :: string是否正确编码?

C# 如何将byte[]用正确字符编码转为字符串?

如何检测和修复不正确的字符编码

BigQuery json 特殊字符 UI 导出问题

如何将字符串编码为 UTF8,然后在 html 中正确显示? [复制]

如何正确地在 PHP 中对字符串进行 URL 编码?