加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 17:41:24 所属栏目:Java 来源:网络整理
导读:我必须在可能包含重音符(“é”,“à”等)的名称上申请UpperCase. 问题: 与JUnit,“é”.toUpperCase转换为“E”,口音被删除 在我的应用程序(一个Spring REST API)中,“é”.toUpperCase转换为“é”.输入来自Ember前端,但编码相同(UTF-8) JUnit测试和Sprin
我必须在可能包含重音符(“é”,“à”等)的名称上申请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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读