java – String.toUpperCase可能会删除重音符

前端之家收集整理的这篇文章主要介绍了java – String.toUpperCase可能会删除重音符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须在可能包含重音符(“é”,“à”等)的名称上申请UpperCase.
问题:

>与JUnit,“é”.toUpperCase转换为“E”,口音被删除
>在我的应用程序(一个Spring REST API)中,“é”.toUpperCase转换为“É”.输入来自Ember前端,但编码相同(UTF-8)

JUnit测试和Spring应用程序使用相同的字符集(UTF-8),语言环境是法语.两者都运行在Oracle Java 8上,在同一台机器上(Debian上的Jenkins CI,但是我可以在我的电脑上重现这种行为:Windows 7).
我尝试指定区域设置toUpperCase(Locale.FRANCE),但它不能解决我的问题.

你知道可能解释这个差异的东西吗?

解决方法

在与@JonathanLermitage的对话中,这不是一个Java问题,而是与单元测试中未正确配置的嵌入式数据库(h2)有关.

我使用的是Java 8,没有特别的配置.

@Test
  public void test()
  {
    String a = "àòùìèé";
    String b = a.toUpperCase();
    System.out.println(b);

    System.out.println(Locale.getDefault());
    assertEquals(b,"ÀÒÙÌÈÉ");
  }

返回

ÀÒÙÌÈÉ
en_US

猜你在找的Java相关文章