java - 打印带有转义不可打印字符的字符串

标签 java

我有这个字符串

String x="String containning special chars  \u202C \n  \u202C  \u202C  \u202C";

我怎样才能打印出这个:String containing special chars\u202C\n\u202C\u202C\u202C ?

尝试过

System.out.println(x.replace("\\","\\\\"));

但这只会打印 String containing special chars\n

也试过

String out = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(x);
System.out.println(out);

但这也无济于事。

谁有我不知道的建议或 API?

更新 - 解决方案

在@lbear aproach 之后,我想出了这个函数来处理大多数转义字符串的情况

public static String removeUnicodeAndEscapeChars(String input) {
    StringBuilder buffer = new StringBuilder(input.length());
    for (int i = 0; i < input.length(); i++) {
        if ((int) input.charAt(i) > 256) {
            buffer.append("\\u").append(Integer.toHexString((int) input.charAt(i)));
        } else {
            if (input.charAt(i) == '\n') {
                buffer.append("\\n");
            } else if(input.charAt(i) == '\t'){
                buffer.append("\\t");
            }else if(input.charAt(i) == '\r'){
                buffer.append("\\r");
            }else if(input.charAt(i) == '\b'){
                buffer.append("\\b");
            }else if(input.charAt(i) == '\f'){
                buffer.append("\\f");
            }else if(input.charAt(i) == '\''){
                buffer.append("\\'");
            }else if(input.charAt(i) == '\"'){
                buffer.append("\\");
            }else if(input.charAt(i) == '\\'){
                buffer.append("\\\\");
            }else {
                buffer.append(input.charAt(i));
            }
        }
    }
    return buffer.toString();
}

最佳答案

Apache Commons StringEscapeUtils它具有 HTML 编码。这种编码非常接近您可能需要的

String escaped code = StringEscapeUtils.escapeHtml(rowId)

See doc

关于java - 打印带有转义不可打印字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103660/

相关文章:

java - 如何使 Spring 缓存中的条目每小时失效?

java - 窗口将 Java 添加到路径

java - 当我们使用 Bitmap 时内存不足

Java2D : how to draw the slice of a circle with GeneralPath

java - 无法启动 glassfish 服务器,因为无法获取/opt/glassfishv3/glassfish/domains/domain1/logs/server.log 的锁定

javascript - 如何在 HtmlUnit 中启用 JavaScript

java - 在 Java 中查找数组中的最大差异以及元素的位置

java - 如何仅将 JR Bean 数据源传递给子报表并将 JREmptyData 源传递给主 IReport

java - 添加新对象并生成新字段 ID

java - Spring BeanCreationException 错误