Maven: Kodowanie źródła w UTF-8 nie działa?

konwertuję projekt z Ant na Maven i mam problemy z konkretnym testem jednostkowym, który dotyczy znaków UTF-8. Problem dotyczy następującego ciągu znaków:

String l_string = "ČäÁÓý\n€řЖжЦ\n№ЯФКЛ";

Problem polega na tym, że test jednostkowy kończy się niepowodzeniem, ponieważ ciąg jest odczytywany w następujący sposób:

?äÁÓý
€????
?????

Klasa java jest zapisywana jako UTF-8, a także określam kodowanie kompilacji do UTF-8 w pliku pom.xml.

Oto fragment mojegopom.xml:

...

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

...

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
            <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
    </plugin>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.15</version>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <version>2.15</version>
    </plugin>
 </plugins>
</build>

Czy coś mi umyka? Byłoby wspaniale, gdyby ktoś mógł mi tutaj pomóc.

Aktualizacja

Odnośnie kodu testowego:

@Test
public void testTransformation()
{

    String l_string = "ČäÁÓý\n€řЖжЦ\n№ЯФКЛ";
    System.out.println( ">>> " + l_string );
     c_log.info( l_string );
    StringBuffer l_stringBuffer = new StringBuffer();
    int l_stringLength = l_string.length();

    String l_fileName = System.getProperty( "user.dir" ) + File.separator + "transformation" + File.separator + "TransformationMap.properties";
    Transformation.init( l_fileName );

    Properties l_props = Transformation.getProps();
    for ( int i = 0; i < l_stringLength; i++ )
    {
        char l_char = l_string.charAt( i );
        int l_intValue = (int) l_char;
        if ( l_intValue <= 255 )
        {
            l_stringBuffer.append( l_char );
        }
        else
        {
            l_stringBuffer.append( l_props.getProperty( String.valueOf( l_char ), "" ) );
        }
    }
    c_log.info( l_stringBuffer.toString() );
    byte[] l_bytes = l_string.getBytes();
    byte[] l_transformedBytes = Transformation.transform( l_bytes );
    assertNotNull( l_transformedBytes );

}

Następująca logika nie jest tak naprawdę istotna (?), Ponieważ po pierwszym sysout wspomniana wcześniej „?” są drukowane zamiast poprawnych znaków (i dlatego poniższe testy nie powiodą się). Nie ma również zastosowania domyślnego kodowania platformy.

Test konwertuje każdy znak zgodnie z plikiem TransformationMap.properties, który jest w następującej formie (tylko fragment):

Ý=Y
ý=y
Ž=Z
ž=z
°=.
€=EUR

Należy zauważyć, że test działa bez problemu, gdy buduję projekt z Antem.

questionAnswers(5)

yourAnswerToTheQuestion