Maven/Intellij - niepoprawne kodowanie

0

Witam,

Mam następujący problem z kodowaniem. Posiadam GUI, które zaczytuje dane z pliku i je prezentuje. W pliku są wyrazy zawierające polskie znaki. Uruchamiam aplikację z poziomu IDE i znaki są wyświetlane poprawnie. Jeżeli buduję paczkę przy użyciu mavena, uruchamiam aplikację i jest niepoprawnie. Zmieniałem w pomie formy kodowanie ale to nie pomaga. Nie za bardzo rozumiem, po której stronie może być problem, gdzie jest właściwie niewłaściwe kodowanie. Na pewno nie po stronie kompilacji, tylko później gdy jest zaczytywany plik.

pom.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>groupId</groupId>
    <artifactId>Automation</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <jdk.version>1.7</jdk.version>
        <testng.version>6.9.10</testng.version>
        <selenium.version>2.53.0</selenium.version>
        <log4j.version>1.2.9</log4j.version>
        <poi.version>3.7</poi.version>
        <project.build.sourceEncoding>ISO-8859-2</project.build.sourceEncoding>
        <!--<project.reporting.outputEncoding>ISO-8859-2</project.reporting.outputEncoding>-->

    </properties>

    <dependencies>

        <!--wspolne-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>${testng.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>

                <configuration>
                    <!-- get all project dependencies -->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <finalName>Biblioteki</finalName>
                    <!---->
                    <!--<outputDirectory>Z:\Biblioteki</outputDirectory>-->

                    <outputDirectory>D:\Biblioteki</outputDirectory>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <!-- bind to the packaging phase -->
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine>
                </configuration>
            </plugin>

        </plugins>


    </build>
</project>
0

Problem leżał po innej stronie. Widocznie Intellij dodaje extra kodowanie dla czytanych plików. Przyszło mi do głowy żeby ustawić kodowanie dla zaczytywanego pliku i to faktycznie w nim leżał problem.

Plik był czytany w ten sposób poprzednio:
BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(PATH)));

Zmieniłem na:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(PATH), StandardCharsets.UTF_8));

Wszystko jest teraz w porządku

1 użytkowników online, w tym zalogowanych: 0, gości: 1