2010-02-15 25 views

Respuesta

37

Las cadenas son listas de números enteros en Erlang, y por lo tanto se puede utilizar el list_to_binary BIF:

1> list_to_binary("hello world"). 
<<"hello world">> 
+0

Gracias. Mi cerebro no funcionaba y seguí haciendo "string_to_binary" en un intento desesperado de probar que la documentación, Google y el sentido común estaban equivocados. :) – Zubair

+0

También introduzco 'string_to_binary' con bastante frecuencia, pero el compilador me sigue diciendo que no existe tal cosa;) – tux21b

+3

También querrá tener en cuenta lo que sucede cuando la cadena contiene caracteres que no son ASCII. Algunas funciones del módulo 'Unicode' pueden ser más apropiadas que list_to_binary para tales ocasiones. – ndim

5

el Unicode (UTF-8/16/32) juego de caracteres necesita más cantidad de bits para expresar caracteres que son mayores que 1-byte de longitud: esta es la razón por la cual la llamada anterior falló para cualquier valor de byte> 255 (el límite de información que un byte puede contener, y que es suficiente para IS0-8859/ASCII/Latin1)

para manejar correctamente los caracteres Unicode que necesitaría usar

unicode:characters_to_binary() R1[(N>3)]

en su lugar, que puede manejar la codificación Latin1 AND Unicode.

HTH ...

Cuestiones relacionadas