StringUtils.stripAccents(String) doesn't handle U with bar

This commit is contained in:
Gary Gregory 2024-05-14 11:15:07 -04:00
parent 006d1d1df9
commit 17ceb435ed
3 changed files with 24 additions and 0 deletions

View File

@ -132,6 +132,7 @@ The <action> type attribute can be add,update,fix,remove.
<action type="fix" dev="ggregory" due-to="Gary Gregory">Make SystemProperties.getLineSeparator(Supplier).</action>
<action type="fix" dev="ggregory" due-to="hunghhdev">StringUtils.stripAccents(String) doesn't handle "\u0111" and "\u0110" (Vietnamese) #1216.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">StringUtils.stripAccents(String) doesn't handle I with bar.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">StringUtils.stripAccents(String) doesn't handle U with bar.</action>
<!-- UPDATE -->
<action type="update" dev="sebb" due-to="Dependabot">Bump commons-parent from 64 to 69 #1194.</action>
<action type="update" dev="ggregory" due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0 #1175.</action>

View File

@ -1420,6 +1420,7 @@ public class StringUtils {
case '\u0111':
decomposed.setCharAt(i, 'd');
break;
// I with bar
case '\u0197':
decomposed.setCharAt(i, 'I');
break;
@ -1435,6 +1436,23 @@ public class StringUtils {
case '\u1DA7':
decomposed.setCharAt(i, 'I');
break;
// U with bar
case '\u0244':
// LATIN CAPITAL LETTER U BAR
decomposed.setCharAt(i, 'U');
break;
case '\u0289':
// LATIN SMALL LETTER U BAR
decomposed.setCharAt(i, 'u');
break;
case '\u1D7E':
// LATIN SMALL CAPITAL LETTER U WITH STROKE
decomposed.setCharAt(i, 'U');
break;
case '\u1DB6':
// MODIFIER LETTER SMALL U BAR
decomposed.setCharAt(i, 'u');
break;
default:
break;
}

View File

@ -110,6 +110,11 @@ public class StringUtilsTrimStripTest extends AbstractLangTest {
assertEquals("I i I i I", StringUtils.stripAccents("\u0197 \u0268 \u1D7B \u1DA4 \u1DA7"));
}
@Test
public void testStripAccentsUWithBar() {
assertEquals("U u U u", StringUtils.stripAccents("\u0244 \u0289 \u1D7E \u1DB6"));
}
@Test
public void testStripAll() {
// test stripAll method, merely an array version of the above strip