Jonathan Lermitage :
I have to apply toUpperCase
on a name that may contain accents ("é", "à", etc.).
Problem:
- with JUnit,
"é".toUpperCase
converts to "E", the accent is removed - in my application (a Spring REST API), "é".toUpperCase converts to "É". The input comes from an Ember frontend, but the encoding is the same (UTF-8)
JUnit tests and Spring application use the same characters set (UTF-8) and the locale is French. Both running on Oracle Java 8, on the same machine (Jenkins CI on Debian, but I can reproduce this behavior on my computer: Windows 7).
I tried to specify the locale toUpperCase(Locale.FRANCE)
, but it doesn't solve my problem.
Are you aware of something that may explain this difference?
freedev :
As in the conversation with @JonathanLermitage this is not a Java problem but is related to the embedded database (h2) used in the unit tests that is not correctly configured.
I'm using Java 8, no particular configuration.
@Test
public void test()
{
String a = "àòùìèé";
String b = a.toUpperCase();
System.out.println(b);
System.out.println(Locale.getDefault());
assertEquals(b,"ÀÒÙÌÈÉ");
}
Returns
ÀÒÙÌÈÉ
en_US
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=457154&siteId=1