繁体   English   中英

Java用UTF-8字符在字符串中编码特殊字符

[英]Java encode special character in a String with UTF-8 character

 String original = "This is my string valúe";

我正在尝试将上述字符串编码为等效于UTF-8,但仅将特殊字符(ú)替换为-“ú” 在这种情况下。

我尝试使用以下内容,但出现错误:

输入不正确的UTF-8,表示编码!字节:0xFA 0x20 0x63 0x61

码:

    String original = new String("This is my string valúe");

    byte ptext[] = original.getBytes("UTF-8");
    String value = new String(ptext, "UTF-8"); 

    System.out.println("Output : " + value);

    This is my string valúe

您可以使用String.replace(CharSequence, CharSequence)和格式化io

String original = "This is my string valúe";
System.out.printf("Output : %s%n", original.replace("ú", "ú"));

哪些输出(如我所想)

Output : This is my string valúe

您似乎想使用XML字符实体。

Appache Commons Lang在StringEscapeUtils中提供了一种方法。

我试图将上述字符串编码为等效于UTF-8,但仅将特殊字符(ú)替换为-“ú” 在这种情况下。

我不确定使用哪种编码“ú” 是,但是您是否尝试查看URLEncoder类? 它不能完全按照您的要求对字符串进行编码,但是可以消除怪异的字符。

您可以尝试以下几行:

 byte ptext[] = original.getBytes("UTF8");
 String value = new String(ptext, "UTF8"); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM