tabla - unicode simbolos
Base64ing caracteres Unicode (4)
Base64 convierte el binario en texto. Si desea convertir texto a un formato base64, primero deberá convertir el texto a binario utilizando una codificación adecuada (por ejemplo, UTF-8, UTF-16).
No especificó qué idioma (s) está utilizando, pero intente convertir la cadena en una matriz de bytes (sin embargo, eso se hace en el idioma que prefiera) y luego base64 codificando esa matriz de bytes.
En .NET puedes probar esto (codificar):
byte[] encbuf;
encbuf = System.Text.Encoding.Unicode.GetBytes(input);
string encoded = Convert.ToBase64String(encbuf);
... y decodificar:
byte[] decbuff;
decbuff = Convert.FromBase64String(this.ToString());
string decoded = System.Text.Encoding.Unicode.GetString(decbuff);
Por supuesto que pueden. Depende de cómo su lenguaje o rutina Base64 maneje la entrada Unicode. Por ejemplo, las rutinas b64
de Python esperan una cadena codificada (como Base64 codifica el texto binario, no los puntos de código Unicode para el texto).
Python 2.5.1 (r251:54863, Jul 31 2008, 22:53:39)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = ''ûñö''
>>> import base64
>>> base64.b64encode(a)
''w7vDscO2''
>>> base64.b64decode(''w7vDscO2'')
''/xc3/xbb/xc3/xb1/xc3/xb6''
>>> print ''/xc3/xbb/xc3/xb1/xc3/xb6''
ûñö
>>>
>>> u''üñô''
u''/xfc/xf1/xf4''
>>> base64.b64encode(u''/xfc/xf1/xf4'')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/base64.py", line 53, in b64encode
encoded = binascii.b2a_base64(s)[:-1]
UnicodeEncodeError: ''ascii'' codec can''t encode characters in position
0-2: ordinal not in range(128)
>>> base64.b64encode(u''/xfc/xf1/xf4''.encode(''utf-8''))
''w7zDscO0''
>>> base64.b64decode(''w7zDscO0'')
''/xc3/xbc/xc3/xb1/xc3/xb4''
>>> print base64.b64decode(''w7zDscO0'')
üñô
>>> a = ''الله''
>>> a
''/xd8/xa7/xd9/x84/xd9/x84/xd9/x87''
>>> base64.b64encode(a)
''2KfZhNmE2Yc=''
>>> b = base64.b64encode(a)
>>> print base64.b64decode(b)
الله