Tag: 编码

如何删除从Web服务返回的无法识别的字符?

我正在开发一个叫rest网络服务的应用程序。 有时,xml响应包含手机无法显示的字符。 显示这些字符时,会显示一个空框。 我想过滤掉这些字符。 如何检测字符是否能够在屏幕上显示? 一些特定字符包括: http://www.fileformat.info/info/unicode/char/0094/index.htm http://www.fileformat.info/info/unicode/char/0080/index.htm http://www.fileformat。信息/资讯/ Unicode的/炭/ 0092 / index.htm的

Java缓冲了用于流的base64编码器

我有很多PDF文件,我需要使用base64编码其内容。 我有一个Akka应用程序,它将文件作为流获取并分发给许多工作人员以编码这些文件并返回每个文件的字符串base64。 我有一个基本的编码解决方案: org.apache.commons.codec.binary.Base64InputStream; … Base64InputStream b64IStream = null; InputStreamReader reader = null; BufferedReader br = null; StringBuilder sb = new StringBuilder(); try { b64IStream = new Base64InputStream(input, true); reader = new InputStreamReader(b64IStream); br = new BufferedReader(reader); String line; while ((line = br.readLine()) != null) { sb.append(line); } } finally { if (b64IStream != null) […]

RPC-GWT序列化/ java.util.Date编码

我正在创建一个序列化GWT请求的脚本,我在编码日期值时遇到问题,以符合RPC-GWT标准。 通过HTTP日志我注意到日期值被转换为一些7个字符的字符串,但我无法识别这些模式使用的算法。 有谁知道哪个算法用于加密这些日期值?

Java文件编码转换

我需要将文件的编码从ANSI(windows-1252)更改为UTF8。 我写下面的程序是通过java来完成的。 此程序将字符转换为UTF8,但是当我在notepade ++中打开文件时,编码类型显示为ANSI为UTF8。 当我在访问数据库中导入此文件时,这会给我带来错误。 仅需要具有UTF8编码的文件。 此外,还要求在不在任何编辑器中打开文件的情况下转换文件。 public class ConvertFromAnsiToUtf8 { private static final char BYTE_ORDER_MARK = ‘\uFEFF’; private static final String ANSI_CODE = “windows-1252”; private static final String UTF_CODE = “UTF8”; private static final Charset ANSI_CHARSET = Charset.forName(ANSI_CODE); public static void main(String[] args) { List fileList; File inputFolder = new File(args[0]); if (!inputFolder.isDirectory()) { […]

Java中用于非ASCII字符的URL解码

我正在尝试使用Java来解码包含%编码字符的URL 我已经尝试使用java.net.URI类来完成这项工作,但它并不总是正常工作。 String test = “https://fr.wikipedia.org/wiki/Fondation_Alliance_fran%C3%A7aise”; URI uri = new URI(test); System.out.println(uri.getPath()); 对于测试字符串“ https://fr.wikipedia.org/wiki/Fondation_Alliance_fran%C3%A7aise ”,结果是正确的“/ wiki/Fondation_Alliance_française”(%C3%A7被ç正确替换)。 但对于其他一些测试字符串,如“ http://sv.wikipedia.org/wiki/Anv%E4ndare:Lsjbot/Statistik#Drosophilidae ”,它会给出错误的结果“/ wiki /Anv ndare:Lsjbot / Statistik”( %E4替换为 而不是ä)。 我用getRawPath()和URLDecoder类进行了一些测试。 System.out.println(URLDecoder.decode(uri.getRawPath(), “UTF8”)); System.out.println(URLDecoder.decode(uri.getRawPath(), “ISO-8859-1”)); System.out.println(URLDecoder.decode(uri.getRawPath(), “WINDOWS-1252”)); 根据测试字符串,我得到不同编码的正确结果: 对于%C3%A7,我得到了正确的“UTF-8”编码结果,并且“ISO-8859-1”或“WINDOWS-1252”编码结果不正确 对于%E4,情况正好相反。 对于这两个测试url,如果我将它们放入Chrome地址栏,我会获得正确的页面。 如何在所有情况下正确解码URL? 谢谢你的帮助 ====回答==== 感谢McDowell在下面回答的建议,它现在似乎有效。 这是我现在的代码: private static void appendBytes(ByteArrayOutputStream buf, String data) throws UnsupportedEncodingException { byte[] b = […]

将字节数组转换为字符串然后再转换回字节数组时,为什么长度不同?

我有以下Java代码: byte[] signatureBytes = getSignature(); String signatureString = new String(signatureBytes, “UTF8”); byte[] signatureStringBytes = signatureString.getBytes(“UTF8”); System.out.println(signatureBytes.length == signatureStringBytes.length); // prints false 问:我可能误解了这一点,但我认为new String(byte[] bytes, String charset)和String.getBytes(charset)是反向操作? 问:作为后续工作,将byte []数组作为String传输的安全方法是什么?

缩短Java中已经很短的字符串

我正在寻找一种尽可能缩短已经很短的字符串的方法。 该字符串是主机名:端口组合,可能看起来像“ my-domain.se:2121 ”或“ 123.211.80.4:2122 ”。 我知道由于需要的开销和缺乏重复,常规压缩对于字符串的问题几乎是不可能的,但我知道如何做到这一点。 因为字母表限制为39个字符( [az] [0-9] – :。 ),所以每个字符可以容纳6位。 与ASCII相比,这可以减少高达25%的长度。 所以我的建议是这样的: 使用某种自定义编码将字符串编码为字节数组 将字节数组解码为UTF-8或ASCII字符串(这个字符串显然没有任何意义)。 然后反转该过程以获取原始字符串。 所以我的问题: 这可行吗? 有没有更好的办法? 怎么样?

比较字符串时忽略希伯来元音

晚上好,我希望你能帮助我解决这个问题,因为我正在努力寻找解决方案。 我有一个单词提供者,例如,他给我发了一些希伯来语的元音 – Vowelled – בַּיִתnot vowelled – בית Vowelled – הַבַּיְתָהnot vowelled – הביתה 与我的提供者不同,我的用户通常不能输入希伯来语元音(我也不希望他这样做)。 用户故事是用户在提供的单词中搜索单词。 问题是在元音和非元音词之间的比较。 由于每个都由内存中的不同字节数组表示,因此equals方法返回false。 我试着研究UTF-8如何处理希伯来元音,看起来它只是普通字符。 我确实想向用户呈现元音,所以我想将字符串保持在内存中,但是在比较时我想忽略它们。 有没有简单的方法来解决这个问题?

Maven项目源编码不起作用

我有一个使用以下属性配置的Maven-Project: 1.7 1.7 UTF-8 UTF-8 在我的机器上,这些设置一切正常。 但是,在另一台机器上,当我检查它并尝试使用mvn install构建它时编译器错误unmappable character for encoding ASCII : [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project scuttle: Compilation failure: Compilation failure: [ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,39] error: unmappable character for encoding ASCII [ERROR] [ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,40] error: unmappable character for encoding ASCII [ERROR] [ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,30] error: unmappable character for encoding ASCII [ERROR] [ERROR] […]

为什么Java生态系统在其软件堆栈中使用不同的字符编码?

例如,类文件使用CESU-8(有时也称为MUTF-8),但内部Java首先使用UCS-2,现在它使用UTF-16。 有关有效Java源文件的规范说,最小符合标准的Java编译器只需要接受ASCII字符。 这些选择的原因是什么? 在整个Java生态系统中使用相同的编码会不会更有意义?