Inu*_*iku 8 javascript java unicode applet utf-8
我很新,所以不要太苛刻:)
我遇到一个问题,将unicode String从嵌入javax.swing.JApplet在网页中传递到Java Script部分.我不确定这是对相关技术的错误还是误解:
我想将一个unicode字符串从Java Applet传递给Java Script,但String搞砸了.奇怪的是,问题不会发生在Internet Explorer 10中,而是发生在Chrome(v26)和Firefox(v20)中.我没有测试过其他浏览器.
返回的String似乎没问题,除了最后一个unicode字符.Java Script Debugger和Web Page中的结果是:
该字符串似乎在最后的字节中被破坏.如果它以ASCII字符结尾,则该字符串是可以的.此外,问题不是在每个组合中发生,也不是每次都发生(不确定).因此我怀疑是一个错误,我担心我可能会发布一个无效的问题.
简约设置包括一个返回一些unicode(UTF-8)字符串的applet:
/* TestApplet.java */
import javax.swing.*;
public class TestApplet extends JApplet {
private String[] testStrings = {
"abc", // OK (because ASCII only)
"??", // Error on last Character
"??", // Error on last Character
"??? ", // OK (because of *space* after ?)
"??????", ... };
public TestApplet() {...}; // Applet specific stuff
...
public int getLength() { return testStrings.length;};
String getTestString(int i) {
return testStrings[i]; // Build-in array functionality because of IE.
}
}
Run Code Online (Sandbox Code Playgroud)
带有java脚本的相应网页可能如下所示:
/* test.html */
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<span id="output"/>
<applet id='output' archive='test.jar' code=testApplet/>
</body>
<script type="text/javascript" charset="utf-8">
var applet = document.getElementById('output');
var node = document.getElementById("1");
for(var i = 0; i < applet.getLength(); i++) {
var text = applet.getTestString(i);
var paragraphNode = document.createElement("p");
paragraphNode.innerHTML = text;
node.appendChild(paragraphNode);
}
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
我使用"适用于Mozilla浏览器的下一代Java插件10.21.2",使用当前的Java版本1.7.0_21处理Windows 7 32位.我的操作系统区域设置有一些问题,但我尝试了几个(英语,日语,中文)区域设置.
如果损坏,则String chrome显示无效字符(例如 ).另一方面,Firefox完全丢弃字符串,如果它以 结尾.
Internet Explorer设法正确显示字符串.
我可以想象几种解决方法,包括转义/取消转义和添加"最终字符",然后通过java脚本删除.实际上我打算用Android的Webkit编写,我还没有在那里测试过.
由于我想继续在Chrome中进行测试(因为Webkit技术和舒适性),我希望这个问题有一个简单的解决方案,我可能会忽略它.
如果您在 Chrome/Firefox 中测试
请用此替换第一行然后测试它,
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Run Code Online (Sandbox Code Playgroud)
当浏览器识别页面时,Doctype 具有重要的价值。
过渡/放宽它可以与 Unicode 一起使用的类型。请测试并回复..
| 归档时间: |
|
| 查看次数: |
2455 次 |
| 最近记录: |