来自 Jsonstream 的音素在 C# 中无法识别

问题描述

我在 C# 中的 JsonStream 有一个小问题

我正在我的存储中读取一个 Json Blob,里面有这个:

    private EditText number1;
    private EditText number2;
    private EditText number3;
    Button reset;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        number1=findViewById(R.id.edit_text_1);
        number2=findViewById(R.id.edit_text_2);
        number3=findViewById(R.id.edit_text_3);
        reset=findViewById(R.id.reset);

//=========== to reset the editText
        reset.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String dx = number2.getText().toString().trim();
                number1.getText().clear();
                number2.getText().clear();
                number3.getText().clear();
            }
        });

//======== if statement to add Edit Text 1 & 2 to text watcher
        if(number1.getText().toString().equals("") && number2.getText().toString().equals("")){
            number1.addTextChangedListener(loginTextWatcher);
            number2.addTextChangedListener(loginTextWatcher);
        }
//======== if statement to add Edit Text 1 & 3 to text watcher 2
        if(number1.getText().toString().equals("") && number3.getText().toString().equals("")){
                number1.addTextChangedListener(loginTextWatcher2 );
                number3.addTextChangedListener(loginTextWatcher2 );
        }


    }

//=========== TextWatcher when EditText 1 & 2 are used & EditText 3 is empty...
// ==========the value of EditText3 will be the sum of EditText 1 and 2
    private TextWatcher loginTextWatcher  = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int start,int count,int after) {

        }

        @Override
        public void onTextChanged(CharSequence s,int before,int count) {
            if(!number1.getText().toString().equals("") && !number2.getText().toString().equals("")){

                if(number3.getText().toString().equals("")){
                    Double value1 = Double.parseDouble(number1.getText().toString().trim());
                    Double value2 = Double.parseDouble(number2.getText().toString().trim());
                    number3.setText(String.valueOf(value1+value2));
                }

            }

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    };

//=========== TextWatcher when EditText 1 & 3 are used & EditText 2 is empty...
// ==========the value of EditText2 will be the sum of EditText 1 and 3
    private TextWatcher loginTextWatcher2  = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int count) {
            if(!number1.getText().toString().equals("") && !number3.getText().toString().equals("")){

                if(number2.getText().toString().equals("")){
                    Double value1 = Double.parseDouble(number1.getText().toString());
                    Double value3 = Double.parseDouble(number3.getText().toString());
                    number2.setText(String.valueOf(value1+value3));
                }

            }

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    };

}

在 C# 中:

{"id":"275177","fremdwort":"1.FFC-Frankfurt","ipa":"ʹeːɐ̯stɐ ɛf ɛf ʦeː ʹfraŋkfʊrt"}

如果我登录我的 JsonStreamer 我会收到这个:

 while (Jsonreader.Read())
                        { if (Jsonreader.TokenType == JsonToken.StartObject)
                            {
                                var record = serializer.Deserialize<JsonClass>(Jsonreader);
                                log.Loginformation(record.Id.ToString() +","+ record.Fremdwort +","+ record.Ipa);

我缺少一些东西来编码这个问号,没有 ???. 接收正确字符串的解决方案是什么。

谢谢陌生人!

解决方法

我不认为这是一个严重的问题。我在我身边进行了测试,只有当我们在本地的 Visual Studio 中运行该函数时,才会出现混乱代码 ???。它只显示在日志中。如果我们在 responseMessage 中输出它(如下图),它不会在输出中显示 ???

enter image description here

enter image description here

如果我们在 azure portal 上运行该函数,它也不会显示乱码 ???。无论是在日志中还是在输出中。 enter image description here

所以我们不用担心,本地日志显示乱码???可能是日志控制台的编码问题造成的。