Esta sección fue aprobado por nuestros expertos para garantizar la veracidad de nuestro post.
Solución:
Un diamante negro con un signo de interrogación no es un carácter Unicode, es un marcador de posición para un carácter que su fuente no puede mostrar. Si hay un glifo que existe en el string eso no está en la fuente que está usando para mostrar eso string, verá el marcador de posición. Esto se define como U+FFFD: . Su apariencia varía dependiendo de la fuente que estés usando.
Puedes usar java.text.normalizer
para eliminar los caracteres Unicode que no están en el juego de caracteres ASCII “normal”.
Puedes usar un String.replaceAll("[my-list-of-strange-and-unwanted-chars]","")
No hay Character.isStrangeAndUnWanted()
tienes que definir lo que quieres.
Si desea eliminar los caracteres de control, puede hacerlo
String str = "u0000u001f hi n";
str = str.replaceAll("[u0000-u001f]", "");
huellas dactilares hi
(mantiene el espacio).
EDITAR Si desea saber el Unicode de cualquier carácter de 16 bits que puede hacer
int num = string.charAt(n);
System.out.println(num);
Para eliminar símbolos no latinos de la string Yo uso el siguiente código:
String s = "小米体验版 latin string 01234567890";
s = s.replaceAll("[^\x00-\x7F]", "");
La salida string será: “latín string 01234567890”
Si para ti ha resultado de provecho este artículo, sería de mucha ayuda si lo compartes con el resto seniors de esta manera nos ayudas a difundir este contenido.