applet - 在 windows-chrome 中,奇数个非英文字符被破坏

标签 applet jnlp

我开发了 jnlp 小程序,它打印出用户输入。

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

输入: 价格
输出:价格��

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

应该是applet 与chrome 浏览器通信的bug。

IE 打印正确。

我可以通过在小程序上附加空格并在 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"/>

关于applet - 在 windows-chrome 中,奇数个非英文字符被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538439/

相关文章:

Java 我想保存一个变量,并且我有 2 个小程序

java - 强制浏览器在单独的窗口中打开我的小程序

java - 在vaadin项目中集成小程序时出现ClassFormatException

java - 如何让 JNLP 下载正确版本的 JavaFX 2?

java - JNLP PersistenceService 的安全性

Eclipse 中的 Java Applet Windows 大小

java - Java 小程序可以打开 "select directory"并通过 JavaScript 交互写入文件系统吗?

java - 访问被拒绝的 JNLP 文件

JRE 8u171 无法使用 Java Web Start 离线模式

java - 如何从 javascript 调用 WebStart 部署的小程序功能?