加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

小程序 – 在Windows-chrome中,奇数个非英语字符被破坏

发布时间:2020-12-14 01:47:26 所属栏目:Windows 来源:网络整理
导读:我开发了jnlp applet,它打印出用户输入. 当我输入奇数个非英文字符(例如:中文)时,chrome浏览器将最后一个字符打印为问号. 输入:? 输出:? 我在java控制台上检查了这个字符是否正确. 它必须是applet与chrome浏览器通信的bug. IE正确打印出来. 我可以通过在a
我开发了jnlp applet,它打印出用户输入.

当我输入奇数个非英文字符(例如:中文)时,chrome浏览器将最后一个字符打印为问号.

输入:?
输出:?

我在java控制台上检查了这个字符是否正确.

它必须是applet与chrome浏览器通信的bug.

IE正确打印出来.

我可以通过在applet上添加空格并在java脚本上删除它来解决此问题.

有人对这个问题有什么线索吗?

代码如下.

*MainApplet.Java*
public class MainApplet extends JApplet implements JSInterface{//,Runnable {

    public int stringOut(String sData) {
        OutData = sData;
        return 0;
    }

}

*js File*

function TSToolkitRealWrapper ()
{   
    var OutData;
    var OutDataNum;
}
var TSToolkit = new TSToolkitRealWrapper();


var attributes = { id:'TSToolkitReal',code:'com.multibrowser.test.MainApplet',width:100,height:100} ;
var parameters = {jnlp_href: getContextPath() + '/download/pkitoolkit.jnlp',separate_jvm:true,classloader_cache:false} ;
TSToolkitRealWrapper.prototype.stringOut=function(str)
{

          var   nRet = TSToolkitReal.stringOut(str) ;
          this.OutData= TSToolkitReal.OutData;
          return    nRet;
}

*HTML*
<SCRIPT language=javascript>
<!--
function StringOut(form)
{
    var data = form.data.value;
    var nRet = 0;
    var base64Data;
    nRet = TSToolkit.stringOut(data);
    if (nRet > 0)
    {
        alert(nRet + " : " + TSToolkit.GetErrorMessage());
    }
    else
    {
        form.data1.value = TSToolkit.OutData;
    }
}

-->
</SCRIPT>


*jnlp*
<?xml version="1.0" encoding="UTF-8"?>
<jnlp href="cmp.jnlp">
    <information>
        <title>MultiBrowser</title>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.6+" />
            <jar href="MultiBrowser.jar"/>

    </resources>
    <applet-desc height="200" main-class="com.multibrowser.test.MainApplet" name="MainApplet" width="200"/>
</jnlp>
我在几个网络浏览器论坛上问过,但还没有答案.

Windows和Linux之间的区别是file.encoding值. Windows(ms959)和Linux(UTF-8).

我无法想象如何设置file.encoding值.

下面没用.当我在java控制台中按’s’时,它仍会打印file.encoding = MS949.

<?xml version="1.0" encoding="UTF-8"?>
<jnlp href="pkitoolkit.jnlp">
    <security>
        <all-permissions/>
    </security>
    <resources>
            <j2se version="1.6+" java-vm-args="-Dfile.encoding=UTF-8" />
            <property name="file.encoding" value="UTF-8"/>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读