Dada una cadena Unicode y estos requisitos:Unicode Truncar lo que se ajusta un tamaño máximo cuando codifica para la transferencia de alambre
- La cadena de ser codificado en algún formato de byte de secuencia (por ejemplo, UTF-8 o JSON de escape Unicode)
- la cadena codificada tiene una longitud máxima
Por ejemplo, el servicio de empuje iPhone requiere codificación JSON con un tamaño de paquete máximo total de 256 bytes.
¿Cuál es la mejor manera de truncar la cadena para que sea válida a Unicode-re codifica y que muestra razonablemente correctamente?
(comprensión del lenguaje humano no es necesario — la versión truncada puede parecer extraño, por ejemplo para un carácter que combina huérfanos o una vocal tailandés, con tal de que el software no se cuelga al manipular los datos.)
véase también:
- Java relacionada pregunta: How do I truncate a java string to fit in a given number of bytes, once UTF-8 encoded? pregunta
- Javascript relacionadas: Using JavaScript to truncate text to a certain size
¡Me gusta mucho esta sugerencia! Muy pocas líneas de código y parece que funcionaría en la mayoría de los casos. Obviamente, podría arruinar la combinación de personajes, pero explícitamente dije que está bien en la pregunta. – JasonSmith
Denis, me gustaría aceptar esta respuesta. Acabo de probar con la pseudo-codificación 'unicode_escape' y funciona perfectamente allí. ¿Podría editar el código y parametrizar el códec, por lo que funcionará con cualquier codificación? ¡Gracias! – JasonSmith
¡muy agradable! No me arrepiento de escribir mi respuesta más larga, ya que el conocimiento específico de UTF-8 es interesante. – u0b34a0f6ae