Basically, I have set up a chat program using http request. One person sends a message to the servlet, it gets stored in a StringBuffer. Other end of chat polls using http requests, and if a message is sitting there for them, it sends it back in a response header.
It has to be multilingual, and my problem is that CJK type characters just don't seem to be encoding. When message is orignally sent, it is URLEncoder'ed. Servlet receives these characters, and they are fine (at this point I write them to a log, which works). When the request comes in for the message though, I figured I should just be able to
send the characters straight back, but it doesn't work. If I URLEncoder them here, they become ???.
I have put a little method in there which escapes the foreign string to unicode, so I can check what's up. In the servlet side the string is fine just before I send it (eg \u30CF\u30A4) but when it gets to the other side it's not fine (eg \00CF\00A4). Looks like problem with encoding right? I've tried everything...that I can think of. I need help.
In the servlet, it's stored in a StringBuffer, and I simply return it in a header:
res.setContentType("text/html; charset=utf8"
res.setHeader( "responseMessage", responseMessage);
(where res = HttpServletResponse)
In the app:
connection = ( HttpsURLConnection ) url.openConnection();
responseMessage =
connection.getHeaderField("responseMessage"
(where connection = HttpUrlConnection and responseMessage = String)
Just suggestions would be good. It should just be a simple process, but I'm worried I may end up having to override ContentHandlers, or figuring out a method to escape the "\u" strings back to the foreign characters.. eep.
It has to be multilingual, and my problem is that CJK type characters just don't seem to be encoding. When message is orignally sent, it is URLEncoder'ed. Servlet receives these characters, and they are fine (at this point I write them to a log, which works). When the request comes in for the message though, I figured I should just be able to
send the characters straight back, but it doesn't work. If I URLEncoder them here, they become ???.
I have put a little method in there which escapes the foreign string to unicode, so I can check what's up. In the servlet side the string is fine just before I send it (eg \u30CF\u30A4) but when it gets to the other side it's not fine (eg \00CF\00A4). Looks like problem with encoding right? I've tried everything...that I can think of. I need help.
In the servlet, it's stored in a StringBuffer, and I simply return it in a header:
res.setContentType("text/html; charset=utf8"
res.setHeader( "responseMessage", responseMessage);
(where res = HttpServletResponse)
In the app:
connection = ( HttpsURLConnection ) url.openConnection();
responseMessage =
connection.getHeaderField("responseMessage"
(where connection = HttpUrlConnection and responseMessage = String)
Just suggestions would be good. It should just be a simple process, but I'm worried I may end up having to override ContentHandlers, or figuring out a method to escape the "\u" strings back to the foreign characters.. eep.