【发布时间】:2014-10-21 13:16:26
【问题描述】:
我正在使用 WebSocket 将数据从我的 java tomcat 服务器发送到我的浏览器。我收到错误:“未捕获的 InvalidCharacterError: 'atob' failed: 要解码的字符串未正确编码。”
这是我的代码:
(java服务器代码):
public void open(Session session)
{
String base64ImageString = generateImageString();
try
{
session.getBasicRemote().sendText(base64ImageString);
}
catch(IOException e)
{
e.printStackTrace();
}
}
private String generateImageString()
{
int imageData[] = new int[2];
imageData[0] = 255;
imageData[1] = 128;
String base64Image = "";
for(int i = 0; i < imageData.length; i++)
{
try
{
base64Image += Base64.encode(Integer.toString(imageData[i]).getBytes("UTF8"));
catch (UnsupportedEncodingException e)
}
catch( UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
return base64Image;
}
(JavaScript 代码):
function onMessage(evt)
{
base64ImageDataString = evt.data;
imageDataString = window.atob(base64ImageDataString);
}
我的 base64 字符串在 java 和 javascript 端看起来像这样:[B@74193bd0[B@24a6103c
如果重要的话,我正在使用 org.glassfish.jersey.internal.util.Base64。我真的很难过:(
【问题讨论】:
标签: java javascript utf-8 websocket base64