附加方向 UTF-8 字符串不兼容



我想从字符串类型的一些键值中制作一个简单的 json,这些值是 utf-8,但在连接后连接的方向和结构非常损坏

public static void main(String[] args) {
    int k1=1;
    int k2=2;
    int k3=3;
    String v1="مقدار1";
    String v2="مقدار2";
    String v3="مقدار3";
    javax.swing.JOptionPane.showMessageDialog(null, "{""+k1+"":""+v1+"",""+k2+"":""+v2+"",""+k3+"":""+v3+""}");
    System.out.println("Json that created:rn"+
        "{""+k1+"":""+v1+"",""+k2+"":""+v2+"",""+k3+"":""+v3+""}");
}

https://ideone.com/j0Vd7s

正确的结果必须是这样的: { "1" : "مقدار3" : "3" , "

مقدار2" : "2" , "مقدار1" }
如果您在链接中运行它,您会看到这是不正确的!
但也许这就是控制台的原因,如果您在摆动组件上看到它,您会看到方向反之亦然(RtL)但没有损坏
在 JSON 结构中,第一个输入始终是关键,不应通过 UTF-8 方向
更改它也许您的快速解决方案是首先增加价值然后键,但我也有英语单词,我想有一种标准的方式来不再遇到问题
我如何解决这个问题并通过这些三重键(K1,K2,K3)和值(v1,v2,v3)制作正确的JSON结构?

当您打印具有从左到右和从右到左方向性的字符混合时,控制台似乎会感到困惑。

如果生成字符串

String json = "{""+k1+"":""+v1+"",""+k2+"":""+v2+"",""+k3+"":""+v3+""}";

并打印出其字符:

for (int i=0; i<json.length(); i++)
     System.out.println(json.charAt(i));

会看到您确实构建了正确的字符串。在控制台视图中调试并不容易。

这是

控制台(甚至是 Swing 组件)的原因,当我创建 JSON 并将其发送到客户端时(认为这是一个 ajax 请求/响应,客户端是一个 JavaScript 代码),js 对 JSON 结构工作得很好,没有任何问题

最新更新