用Java处理法语字符

Max*_*Max 6 javascript java encoding

我有一个页面,我搜索一个术语,它显示完美.无论是哪种角色.

现在,当我在JSP中有几个复选框时,我检查并提交.在这些复选框中,我有一个框名称ABC Farmacéutica Corporation.

当我点击提交按钮时,我正在调用一个函数并将所有参数设置为一个表单并将提交该表单.(我在提交前测试了特殊字符显示的警报,并且显示良好).

现在,来到Java端,我使用Springs Frame工作.当我在控制器中打印该术语时,它显示为ABC Farmacéutica Corporation.

请帮忙......先谢谢.

编辑:

请尝试此示例示例

import java.net.*;
class sample{
    public static void main(String[] args){
        try{
            String aaa = "ABC Farmacéutica Corporation";
            String bbb = "ABC Farmacéutica Corporation";

            aaa = URLEncoder.encode(aaa, "UTF-8");
            bbb = URLDecoder.decode(bbb, "UTF-8");

            System.out.println("aaa   "+aaa);
            System.out.println("bbb   "+bbb);

        }catch(Exception e){
            System.out.println(e);      
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到输出,

aaa   PiSA+Farmac%C3%A9utica+Mexicana+Corporativo
bbb   PiSA Farmac??utica Mexicana Corporativo
Run Code Online (Sandbox Code Playgroud)

尝试按string aaa原样打印.

Yan*_*hon 10

您得到的"ABC Farmacéutica Corporation"是因为您从客户端收到的字符串是ISO-8859-1,您需要在对其UTF-8进行URL解码之前将其转换为.像这样 :

bbb = URLDecoder.decode(new String(bbb.getBytes("ISO-8859-1"), "UTF-8"), "UTF-8");
Run Code Online (Sandbox Code Playgroud)

注意:某些编码无法从不同的编码转换为不同的编码,而不会有数据丢失的风险.例如,您无法将Thaï字符(TIS-620)转换为其他编码,甚至不能UTF-8.因此,除非最终需要(即数据来自外部,第三方或专有来源等),否则请避免从一种编码转换为另一种编码.这只是如何从一个源转换为另一个源的解决方案,知道源编码.


Tho*_*sen 2

这是一个编码问题,并且\xc3\x83可以清楚地识别出这是解释为 ISO-Latin-1(或其近亲之一)的 UTF-8 文本。

\n\n

确保顶部的 JSP 页面显示它使用 UTF-8 编码。

\n