我在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
我正在为法国客户做一些工作,因此需要处理重音字符.但是我遇到了很多困难,我希望解决方案很简单,有人可以向我指出.
字符串:La Forêt pour Témoin
转换为:La For? pour T?oin
请注意重音字符后面缺少的字符 - ê后面的t和é后面的m.
我已经尝试使用StringEscapeUtils,它成功地转义了一些字符,例如 ă.我还构建了自己的转义函数,它产生相同的结果(ă将起作用,ê不会).
private String escapeChars(String string) {
char[] chars = string.toCharArray();
String result = "";
for (int i = 0; i < chars.length; i++) {
int c = chars[i];
result += "&#" + c + ";";
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
该项目使用App Engine插件在eclipse中运行,我无法缩小问题是由Java,App Engine还是SQLite引起的.
任何帮助表示赞赏.
编辑:我发现只是从表单中显示请求参数时字符串格式不正确.(即,request.getParameter("string")已经有格式错误的内容).
我尝试过丹尼尔建议的元标记没有成功.我认为你在正确的轨道上,html文件的标题数据如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" …Run Code Online (Sandbox Code Playgroud) 在互联网上我找到了一本名为JSF 2.0 Cookbook 的书。
\n\n我骑了第 7 章(国际化),我发现它非常简单,我自己尝试了所有内容,除了使用俄语、阿拉伯语、塞尔维亚语等语言的字符之外,一切都运行良好......
\n\n书上是这样说的:
\n\n\n\n\n使用阿拉伯语、中文、俄语字符(等等)时的一个常见问题听起来像这样:“我可以在 inputText\n 组件中键入这些字符,但是当我提交表单时,插入的文本会显示在Unicode 字符,而不是人类可读字符。如何解决这个问题?”。解决方案非常简单。您所要做的就是在 JSF 页面中写入以下行:
\n
<%@page contentType="text/html" pageEncoding="UTF-8"%>\nRun Code Online (Sandbox Code Playgroud)\n\n这正是我所做的。我在主 JSF 模板的第一行代码中添加了这一行。但这没有用。\n我错过了什么?我的所有本地化属性文件都配置为使用 UTF-8:
\n\n
我还在 h:head 标签中尝试了这一行:
\n\n<meta http-equiv="content-type" content="text/html;charset=utf-8"/>\nRun Code Online (Sandbox Code Playgroud)\n\n我还需要什么才能看到页面中用俄语、阿拉伯语编写的文本...\n当我更改为 ru、ar 或 sr 区域设置时我看到的唯一内容是这样的文本:
\n\n\n\n\n\xc3\x99\xc3\x98\xc2\xa8\xc3\x98\xc2\xad\xc3\x98\xc2\xab \xc3\x99\xc3\x99 \xc3\x98\xc2\xb5\xc3\x99\xc3 \x98\xc2\xad\xc3\x98\xc2\xa7\xc3\x98\xc2\xaa \xc3\x99\xc3\x99\xc3\x99\xc3\x98\xc2\xa9 \xc3\x99\xc3\x99 \xc3\x98\xc2\xb3\xc3\x99
\n
更新\n阅读了一些有关本地化的文章后,我得出的结论是我的应用程序需要进行转换才能呈现特殊字符(我不喜欢属性文件中的 scape 字符的解决方案)。我在此链接中关注了一个示例:http://jdevelopment.nl/internationalization-jsf-utf8-encoded-properties-files/
\n\n我理解其中的大部分内容,但是当我尝试在我的应用程序中执行此操作时,我发现我仍然在浏览器上看到垃圾。我尝试了各种方法,但没有成功:
\n\n这就是我组织文件的方式:
\n\n
这是我的 faces-config.xml
\n\n<?xml version="1.0" encoding="UTF-8"?>\n\n<faces-config\n xmlns="http://java.sun.com/xml/ns/javaee"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"\n version="2.0">\n <application>\n <message-bundle>resources.application</message-bundle>\n …Run Code Online (Sandbox Code Playgroud) 我在RESTeasy中编码字符串时遇到问题.问题是中文字母或任何其他非拉丁字符无法正确显示.如果我尝试将它们打印出来(或作为回复发送),我会得到"?????" 代替.我相信RESTeasy中的默认编码是us-ascii.你知道怎么把它换成UTF-8吗?也许还有另一个解决这个问题的方法?
这是我的代码中的一段短文:
@POST
@Path("post")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String uploadData(@MultipartForm DataUploadForm uploadForm) {
...
//the code below is just for the purpose of presentation
String text = "some non-latin alphabet signs here"
System.out.println(text); // "??????" is printed out
return text; //"??????" is returned
}
Run Code Online (Sandbox Code Playgroud)
我的resteasy-jaxrs-3.0-beta-2在Tomcat 7.0上运行.
谢谢!