我在2台计算机上使用netbeans 6.1.
其中一个程序:
public static void main(String argv[])
{
System.out.println("????");
}
Run Code Online (Sandbox Code Playgroud)
正常打印,另一个问号打印.
两种环境之间有什么区别?
编辑:在两台计算机上控制面板\区域和语言选项\高级设置为希伯来语
编辑:谢谢Michael Burr,但编码的值已经是UTF-8.也许这与JVM有关?
编辑:我已经安装了Eclipse,同时也出现了问题.我也尝试从具有相同结果的文件中读取希伯来语.
编辑:
System.getProperty("file.encoding");
返回"Cp1252"我试过,
System.setProperty("file.encoding","UTF-8")
但问号仍然存在.
谢谢,
Ido
{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎ ±ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö±øùúûüýþŸ?????????????????????€¢£¥¤????????""????????????????†‡??????????×÷+-??¼½¾??????%‰¹²³
{|}~???????????????????????????¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎ ±ÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö±øùúûüýþ?????¦???????????????¤?¢£¥¤????????""????¦???????????????????????×÷+-Ov¼½¾??????%?¹²³
<#ftl attributes={"content_type":"text/html"} encoding="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)
把它放到我的HttpsCoookieFilter中:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
Run Code Online (Sandbox Code Playgroud)
很明显,我(ab)使用HttpServlet而不是Freemarker来使用out.write()生成HTML内容,所以我添加了上面的内容.
这是servlet源码.有关如何更改它的任何提示都非常受欢迎:
public class HttpsCookieFilter implements Filter {
private static Logger log = Logger.getLogger(HttpsCookieFilter.class);
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
final HttpServletRequest req = (HttpServletRequest) request;
final HttpServletResponse res = (HttpServletResponse) response;
req.setCharacterEncoding("UTF-8");
res.setCharacterEncoding("UTF-8");
res.setContentType("text/html; charset=UTF-8");
final HttpSession session = req.getSession(false);
if (session != null) {
setCookie(req, res);
}
try {
chain.doFilter(req, …Run Code Online (Sandbox Code Playgroud)