当前位置: 首页 > 知识库问答 >
问题:

带变音符的字符转换为ascii

羊城
2023-03-14

我正在尝试从最多500个字符的TextArea中获取值。但我面临一个问题,字符与变音符,其中每个特殊字符替换为4个字符。因此,如果我给出包含法语字符的500个字符的文本,在数据库中持久化所需的实际长度(字段长度为500)将超过500个字符,事务将失败。

一些例子:

  • oubliée被转换为oubli:afetraye
  • ©E
  • Désiriez被转换为D:FARTH©Siriez
<form id="contForm" method="post" name="formCont"
    action="/wps/customforms/ParticipationRequest"
    enctype="multipart/form-data">
<div class="spec textarea small" id="inpSpec">
    <label class="label" for="inp"><%=content.getLangMap().get(langcode)%>
        <span class="required">*</span> <span class="hint"></span> </label>
    <div class="value">
        <div class="control">
            <textarea cols="5" rows="3"
                id="<%=String.valueOf(content.getId())%>"
                name="<%=String.valueOf(content.getId())%>"></textarea>
        </div>
    </div>
</div>
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
String description = null;
for (FileItem item : items) {
        if (item.isFormField()) {
                if (item.getFieldName().equalsIgnoreCase(String.valueOf(content.getId()))) {

                        // Here I get invalid data for french characters.
                        description =  item.getString());
                    }
        }
}
  • 使用的应用程序服务器:WAS
  • 平台:Linux
  • 我尝试将请求的字符编码类型设置为UTF-8,ISO-8951...但似乎不起作用。

共有1个答案

范豪
2023-03-14

utf-8中127以上的所有字符都以两个或更多字节转义。数据写入器和数据写入器之间的编码似乎不匹配:

  • 显示的文本是一些保存为utf-8编码但后来读为latin-1(又名iso-8859-1)的法语口音字符的典型文本:保存为utf-8的latin-1中的é(十六进制E9)变为C3 A9(如果显示为“原始”字符,则为)
  • 但如果依次保存为utf-8,则它将变为C3 83 C2 A9,显示为:fa>©显示为原始字符或拉丁编码

我不知道您的应用程序服务器,但看看可以将文本写成utf-8但读成简单的iso-8859/latin文本的地方。

 类似资料:
  • 在我的WPML- 例如,我有一个字符串,它具有以下内容: 背景:职业 姓名:武术家 字符串:武术家 法文译本:玛蒂奥艺术Pratiquants d'Arts Martiaux 然后我尝试使用GetText函数__()将字符串添加到短代码的返回值中: 但在页面(mysite/fr/careers/)上,英文名称武术家仍然出现。 在页面上,ICL_语言代码等于“fr”,因此页面知道它应该是法语的。 我

  • 我正在构建一个计算器,为了让计算器工作,我需要将字符串中的所有整数转换为双数。例如,如果我有一个字符串:3*8 5/2-4,我想将其转换为:3.0*8.0 5.0/2.0-4.0。我该怎么做? 编辑:如果我有这个字符串:3.0*8.0 5.0/2.0-4,我想将他转换为:3.0*8.0 5.0/2.0-4.0

  • 我正在使用Apache POI读取<代码>。docx文件,并在一些操作后写入。<代码>。我使用的docx文件是法语的,但当我在它将一些法语字符转换为特殊字符。示例转换为 下面的代码用于编写文件 默认使用UTF-8。 在调试时,我在写入<代码>之前进行了检查。csv数据保持原样。但它在写作时被转换了吗?我已将默认语言环境设置为语言环境。法语 我错过了什么吗?

  • 问题内容: 我想将python变量名称转换为等效的字符串,如图所示。有什么想法吗? 问题答案: TL; DR:不可能。参见最后的“结论”。 在一个使用场景中,您可能需要此场景。我并不是在暗示没有更好的方法或实现相同的功能。 为了在调试,模式和其他类似情况下出现错误时“转储”任意词典列表,这将很有用。 需要的是该功能的反向功能: 它将以标识符名称(“变量”,“字典”等)作为参数,并返回包含标识符名称

  • 很多问题都解决了这个问题,但没有一个解决方案能完全满足我的需要。 我有一个数据框,有两列数字,每列10-20位。这些实际上是ID,我想将它们连接起来。看起来最好先将值转换为字符串。 然而,当使用转换时,熊猫保留了科学符号,这是不会飞的。 我尝试过的事情: 尝试:dtype arg('str')或转换器(使用)在 结果:

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字