我想存储印度语言,然后再次显示已保存的消息。(带有语言消息的CRUD操作)。我能够实现创建,但是当尝试阅读时我得到“ ???”而不是保存的语言内容(即, )。因此,当我调试时,我找到数据,直到打印书写器对象按预期显示在语言中为止。但是当我收到有关JavaScript的Ajax时。我得到“ ????”。
注意:
我尝试了内容类型-文本/ html,应用程序/ json。
编码为UTF-8
在服务器上:
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain;charset=UTF-8");
response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("x-xss-protection", "1; mode=block");
response.setHeader("x-frame-options", "SAMEORIGIN");
out = response.getOutputStream();
out.write("नमस्ते");// this is coming from db
在客户端
$.get({
url: "/server/langMsg",
}).then(function(rspTxt){
var json = $.parseJSON(rspTxt);
});
答案 0 :(得分:1)
您不需要使用ServletOutputStream
。只需使用javax.servlet.PrintWriter
,
response.getWriter().print("नमस्ते");
答案 1 :(得分:0)
我不确定数据库是否已使用MySQL。但是,我想应该是一样的。 如果您未指定UTF8,则应该看到类似??????的内容。在其他数据库中 您应该看到印地文数据。如果未指定,请指定并尝试。 快速代码: 首先使用此查询检查UTF8兼容性。如果它支持你应该 看到输出为“ Character_set_system” | “ UTF8” 显示变量,例如“ character_set_system”;
现在检查一下,更改表并只修改列,指定它 作为UTF8
ALTER TABLE tableName修改列名VARCHAR(10)CHARACTER SET UTF8; 现在,尝试插入印地文/本地语言值并保存。查询它和你 应该看到印地文文字。
答案 2 :(得分:0)
我终于得到了答案,问题出在tomcat和mysql配置(在我的项目中为context.xml)。