html页面汉字显示不正确

时间:2018-12-07 11:28:26

标签: jquery html ajax jsp utf

我有一个汉字ASCII 3f:3f值的给定十六进制值

  

没有

enter image description here

当我将其覆盖回字符串时,它无法显示中文字符

enter image description here

不确定在哪里更改编码任何帮助将不胜感激。

这是发送字符串并将其显示回JSP页面的逻辑

 $('#form').submit(function (event)
                    {
                    //  
                  $('#outputtext1').html('<img height="20" width="20"  src="images/712.GIF"> loading...');
                     event.preventDefault();
                        $.ajax({
                            type: "POST",
                            url: "StringFunctionality", //this is my servlet
                           data: $("#form").serialize(),
                            success: function(msg){    
                                  $('#outputtext1').empty();
                                        $('#outputtext').empty();
                                     $('#outputtext').append(msg);

                            }
                        }); 
                    });
        });

然后捕获结果并通过HTML显示

<div class="form-group row">
            <label for="outputtext"  class="font-weight-bold col-sm-2 col-form-label">Output</label>
            <div class="col-sm-10">
        <textarea name="outputtext" class="form-control" id="outputtext" cols="2" rows="3" ></textarea>
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

在您的示例中,您尝试将汉字转换为ASCII。问题在于ASCII仅覆盖某些拉丁字符。

如Musa在评论3f中所述,是问号的ASCII十六进制值。

当您尝试将字符串从一种编码转换为仅支持字符子集的另一种编码时(例如,从UTF-8转换为ASCII),它将用默认的字符替换(或删除)无法编码的字符。根据您的情况,它会用问号替换中文字符。

因此,当前行为是正常的。在执行转换之前,您可能需要进行一些测试,以确保目标编码能够对提供的字符进行编码。