Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 15991)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 15994)
@@ -23,4 +23,5 @@
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.OptionalInt;
 import java.util.Set;
 import java.util.regex.Pattern;
@@ -451,5 +452,11 @@
 
     static boolean containsUnusualUnicodeCharacter(String key, String value) {
-        return value != null && value.chars().anyMatch(c -> isUnusualUnicodeBlock(key, c));
+        return getUnusualUnicodeCharacter(key, value).isPresent();
+    }
+
+    static OptionalInt getUnusualUnicodeCharacter(String key, String value) {
+        return value == null
+                ? OptionalInt.empty()
+                : value.chars().filter(c -> isUnusualUnicodeBlock(key, c)).findFirst();
     }
 
@@ -678,7 +685,9 @@
             withErrors.put(p, "ICV");
         }
-        if ((containsUnusualUnicodeCharacter(key, value)) && !withErrors.contains(p, "UUCV")) {
+        final OptionalInt unusualUnicodeCharacter = getUnusualUnicodeCharacter(key, value);
+        if (unusualUnicodeCharacter.isPresent() && !withErrors.contains(p, "UUCV")) {
+            final String codepoint = String.format(Locale.ROOT, "U+%04X", unusualUnicodeCharacter.getAsInt());
             errors.add(TestError.builder(this, Severity.WARNING, UNUSUAL_UNICODE_CHAR_VALUE)
-                    .message(tr("Tag value contains unusual Unicode character"), s, key)
+                    .message(tr("Tag value contains unusual Unicode character {0}", codepoint), s, key)
                     .primitives(p)
                     .build());
