当前位置: 首页 > 面试题库 >

将包含ASCII的字符串转换为Unicode

蒋骏
2023-03-14
问题内容

我从HTML页面中将一个字符串输入到Java HTTPServlet中。根据我的要求,我得到了显示汉字的ASCII码:

“可以告诉我” (无空格)

如何将该字符串转换为Unicode?

HTML代码:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Find information</title>
    <link rel="stylesheet" type="text/css" href="layout.css">
</head>
<body>

<form id="lookupform" name="lookupform" action="LookupServlet" method="post" accept-charset="UTF-8">
    <table id="lookuptable" align="center">
        <tr>
            <label>Question:</label>
            <td><textarea cols="30" rows="2" name="lookupstring" id="lookupstring"></textarea></td>
        </tr>
    </table>
    <input type="submit" name="Look up" id="lookup" value="Look up"/>
</form>

Java代码:

request.setCharacterEncoding("UTF-8");
javax.servlet.http.HttpSession session = request.getSession();
LoginResult lr = (LoginResult) session.getAttribute("loginResult");
String[] question = request.getParameterValues("lookupstring");

如果我打印问题[0],则会得到以下值:“&#21487;&#20197;&#21578;&#35785;&#25105;”


问题答案:

没有ASCII显示中文字符的代码。ASCII不代表汉字。

如果您已经有一个Java字符串,则它已经具有所有字符(美国,拉丁语,中文)的内部表示形式。然后,您可以使用UTF-8或UTF-16表示形式将该Java字符串
编码 为Unicode


String s =“可以告诉我”; 编辑在没有汉字字体的系统上该行无法正确显示

String s = "\u53ef\u4ee5\u544a\u8bc9\u6211";
byte utfString = s.getBytes("UTF-8");

现在,我查看了您的更新问题,您可能正在寻找StringEscapeUtils类。它来自Apache Commons
Text。并且会将您的HTML实体 取消转义 为Java字符串:

String s = StringEscapeUtils.unescapeHtml("& #21487;& #20197;& #21578;& #35785;& #25105;"); // without spaces


 类似资料:
  • 问题内容: 我有一个字节数组,其中包含我希望转换为字符串的ASCII字符。例如: myByteArray在循环后应包含字符串“ 12345678”。如何将此字符串转换为String变量? 谢谢! 问题答案: 用 字符串类为此提供了一个构造函数。 旁注:此处的第二个参数是CharSet(字节编码),应谨慎处理。这里更多。

  • 问题内容: 我需要将由某些特定于某些语言的字母(例如HÄSTDJUR-注意Ä)组成的s 转换为不带那些特殊字母(在这种情况下为HASTDJUR)的。如何用Java做到这一点?感谢帮助! 它不是真的如何听起来。该场景如下-您要使用该应用程序,但没有瑞典语键盘。因此,您无需查看字符映射表,而是通过将特殊字母替换为拉丁字母中的典型字母来键入它。 问题答案: 我认为您的问题与此问题相同: Java-消除重

  • 我有一个字符串返回给我,其中包含转义字符。 这是一个示例字符串 " test\40gmail.com " 如您所见,它包含转义字符。我需要将其转换为其实际值,即 " test@gmail.com " 我该怎么做?

  • 问题内容: 您如何将字符串转换为ASCII值? 例如,“ hi”将返回104105。 我可以单独执行ord(’h’)和ord(’i’),但是在有很多字母的情况下会很麻烦。 问题答案: 您可以使用列表理解:

  • 问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str

  • 问题内容: 如何将Unicode字符串(包含额外的字符,如£$等)转换为Python字符串? 问题答案: