diff --git a/.idea/libraries/ibm_icu_icu4j.xml b/.idea/libraries/ibm_icu_icu4j.xml
new file mode 100644
index 000000000..15026b6c7
--- /dev/null
+++ b/.idea/libraries/ibm_icu_icu4j.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/icu4j-70.1-javadoc.jar b/lib/icu4j-70.1-javadoc.jar
new file mode 100644
index 000000000..3ca30e212
Binary files /dev/null and b/lib/icu4j-70.1-javadoc.jar differ
diff --git a/lib/icu4j-70.1-sources.jar b/lib/icu4j-70.1-sources.jar
new file mode 100644
index 000000000..03348fd70
Binary files /dev/null and b/lib/icu4j-70.1-sources.jar differ
diff --git a/lib/icu4j-70.1.jar b/lib/icu4j-70.1.jar
new file mode 100644
index 000000000..9f0747378
Binary files /dev/null and b/lib/icu4j-70.1.jar differ
diff --git a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt
index 57fe40d1e..f6aea9b5f 100644
--- a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt
+++ b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt
@@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.OrthographicCamera
import com.badlogic.gdx.graphics.Pixmap
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer
+import com.ibm.icu.text.Normalizer2
import com.jme3.math.FastMath
import net.torvald.terrarum.*
import net.torvald.terrarum.gamecontroller.*
@@ -433,9 +434,11 @@ class UIItemTextLineInput(
}
private fun textbufToString(): String {
- return textbuf.toJavaString()
+ return textbuf.toJavaString().toUnicodeNFC()
}
+ private fun String.toUnicodeNFC() = Normalizer2.getNFCInstance().normalize(this)
+
private fun moveCursorToEnd(stride: Int) {
try {
cursorX += stride
diff --git a/terrarum.terrarum.iml b/terrarum.terrarum.iml
index 53e6f65b1..a89b041ee 100644
--- a/terrarum.terrarum.iml
+++ b/terrarum.terrarum.iml
@@ -23,5 +23,6 @@
+
\ No newline at end of file