str = "tést";
我想将上面的é替换为其十进制转义码é
。
我在下面试过,
str=str.replaceAll("é","é");
但无法运行构建,因为,担心:é是编码utf8的不可映射的字符。
那么,有没有办法从字符串中找到一个带小数点233的字符并替换它。
回答以下评论:
这是构建警告
D:\workspace\ProName\build\src\com\Pro\ps\ProRetrieve.java:381: warning: unmappable character for encoding UTF8
[javac] array[i] = array[i].replaceAll("�", "é");
[javac]
^
在我们运行构建时,它会创建 jar 文件。我们使用.bat文件
运行这个jar文件下面是运行jar的bat文件的代码
@ ECHO OFF
D:
cd D:\workspace\ProName\build\target
java -jar ProApp.jar
答案 0 :(得分:0)
您的源文件是使用Windows默认编码的,可能是Windows-1252(ISO-8859-1),但javac命令需要UTF-8。理想情况下,您可以将文件更改为UTF-8,但也可以在javac命令行上指定选项-encoding ISO-8859-1
。
在IDE中,您需要找到设置源编码的位置,并且我不记得在Eclipse中设置的位置,并且现在无法访问我的Eclipse系统。
答案 1 :(得分:0)
javac
是编译器,因此编译器会阻塞字符,而不是运行时的任何东西。您试图用HTML转义字符的方式替换它,而不是Java希望您embed Unicode values进入其源文件的方式,例如String str = "t\u00e9st";
\uXXXX
使用4个十六进制数字表示字符的Unicode值。