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

Maven无法处理Unicode字符

茹轩昂
2023-03-14

我用java运行代码,Unicode字符可以显示正确,但当我用maven(Mvn clean test)运行代码时,Unicode字符显示不正确。我有用户范围报告和扩展报告显示日志的Unicode字符也不正确

<groupId>groupId</groupId>
<artifactId>api</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                 <encoding>UTF-8</encoding>
                <fork>true</fork>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>.\testsuites\run1.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.9.9</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.11</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.11</version>
    </dependency>
    <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>4.0.9</version>
    </dependency>
    <dependency>
        <groupId>com.relevantcodes</groupId>
        <artifactId>extentreports</artifactId>
        <version>2.41.2</version>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.6.0</version>
    </dependency>
    <dependency>
        <groupId>com.samczsun</groupId>
        <artifactId>skype4j</artifactId>
        <version>0.1.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.6</version>
    </dependency>

    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.11</version>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.ashot</groupId>
        <artifactId>ashot</artifactId>
        <version>1.5.4</version>
    </dependency>
    <dependency>
        <groupId>net.gpedro.integrations.slack</groupId>
        <artifactId>slack-webhook</artifactId>
        <version>1.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>ooxml-schemas</artifactId>
        <version>1.3</version>
    </dependency>

    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
    <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-sheets</artifactId>
        <version>v4-rev525-1.23.0</version>
    </dependency>

    <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-drive</artifactId>
        <version>v3-rev124-1.23.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>1.23.0</version>
    </dependency>

    <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client-jetty</artifactId>
        <version>1.23.0</version>
    </dependency>
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.4.0</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>3.3.0</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.1</version>
    </dependency>

    <dependency>
        <groupId>net.javacrumbs.json-unit</groupId>
        <artifactId>json-unit</artifactId>
        <version>1.5.0</version>
        <scope>compile</scope>
    </dependency>

</dependencies>
@Test(enabled = true)
public void Demo_001() throws IOException {

    String text = "Đây là văn bản tiếng việt";
    System.out.println(text);

            //extent report log
    BaseObject.addReportLog(LogType.INFO, text);

}

实际结果:?y l v?n b?n ti?ng vi?t

预期结果:Derâlàvăn b n tiéng viét

共有1个答案

陆啸
2023-03-14

我通过在pom.xml的sureFire插件上添加DFile编码UTF-8来解决我的问题

      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <argLine>-Dfile.encoding=UTF-8</argLine>
                <suiteXmlFiles>
                    <suiteXmlFile>.\testsuites\run1.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
 类似资料:
  • 我在WSO2 ESB中使用GET方法定义了如下API资源: 现在,如果我通过标准浏览器(如chrome或firefox)调用API,它可以正常工作,并且我得到的响应代码是ok 200 但是我不能通过Postman调用这个API,它返回NotFound404。如果我将“سلام”替换为像“hello”这样的标准ascii字符串,它工作正常,并返回代码ok 200: 我在postman的Headers

  • 问题内容: 网络服务器使用utf-8编码提供响应,所有文件都使用utf-8编码保存,我所知的所有设置都已设置为utf-8编码。 这是一个快速程序,用于测试输出是否有效: 该程序的输出为: 呈现为: 我可能做错了什么?我必须告诉DomDocument正确处理utf-8的具体程度是多少? 问题答案: 需要一个HTML字符串。 HTML 根据其规范使用默认的编码(ISO拉丁字母1号)。那是因为更长,请参

  • 我创建了一个java代码来存储上传的文本文档。然后我返回该文件中的文本。所有文本均为“僧伽罗语”。UTF-8编码文本 输出直接发送到jsp页面,在那里显示为'??????????????'。 Windows 8.1、tomcat和java版本7。我已经用僧伽罗字符测试了jsp,它们正在工作。我添加了UTF-8作为内容类型。 我试过这个,这个,还有这个。

  • 问题内容: 我正在处理python-lastfm库返回的unicode字符串。 我假设在途中某个地方,该库获取了错误的编码,并返回了可能包含无效字符的unicode字符串。 例如,我期望变量a中的原始字符串为“G​​lück” \ xfc是转义值252,它对应于latin1编码的“ü”。它以某种方式以python无法自行处理的方式嵌入到unicode字符串中。 如何将其转换回包含原始“Glück”

  • 问题内容: 当我运行它时,它抱怨: 但是我不能使用,因为它会抱怨: 有人知道如何处理吗? 问题答案: 您可以使用urllib.parse.quote()对URL的路径部分进行编码。

  • 本文向大家介绍C语言中字符和字符串处理(ANSI字符和Unicode字符),包括了C语言中字符和字符串处理(ANSI字符和Unicode字符)的使用技巧和注意事项,需要的朋友参考一下 我们知道,C语言用char数据类型表示一个8位的ANSI字符,默认在代码中声明一个字符串时,C编译器会把字符串中的字符转换成由8位char数据类型构成的一个数组: Microsoft的C/C++编译器定义了一个内建的