Java utf-8字符串的连接方向不兼容

Java utf-8字符串的连接方向不兼容,java,json,unicode,utf-8,direction,Java,Json,Unicode,Utf 8,Direction,我想从一些字符串类型的键值生成一个简单的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.showMessa

我想从一些字符串类型的键值生成一个简单的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:\r\n"+
        "{\""+k1+"\":\""+v1+"\",\""+k2+"\":\""+v2+"\",\""+k3+"\":\""+v3+"\"}");
}

正确的结果必须是:{“1”:“3”,“2”,“1”。
如果你在链接中运行它,你会发现这是不正确的
但这可能是控制台的原因,如果您在swing组件上看到它,您看到的方向是相反的(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));

for(int i=0;i当您打印具有从左到右和从右到左方向性的混合字符时,控制台似乎会感到困惑

如果您构建字符串

String json = "{\""+k1+"\":\""+v1+"\",\""+k2+"\":\""+v2+"\",\""+k3+"\":\""+v3+"\"}";
并打印出其字符:

for (int i=0; i<json.length(); i++)
     System.out.println(json.charAt(i));
for(int i=0;i这是控制台(甚至是swing组件)的原因,当我创建json并将其发送给客户端(认为这是一个ajax请求/响应,客户端是一个JavaScript代码)时,js对json结构起到了很好的作用,并且没有任何问题是控制台(甚至是swing组件)的原因当我创建json并将其发送给客户机(认为这是一个ajax请求/响应,客户机是一个JavaScript代码)时,js对json结构来说工作得很好,没有任何问题