# Codificar cadena en Base64

**URL:** <https://foros.velneo.com/t/codificar-cadena-en-base64/10379>\
**Category:** Velneo\
**Created:** [3 Abril, 2020 16:31 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379 "2020-04-03T16:31:15Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![desarrollo](https://avatars.discourse-cdn.com/v4/letter/d/c57346/32.png) [@desarrollo](https://foros.velneo.com/u/desarrollo)\
**Post date:** [3 Abril, 2020 16:31 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/1 "2020-04-03T16:31:15Z")

</div>

Buenas estoy intentando codificar una cadena a base64 pero no lo condigo, estoy utilizando javascript para esto, dejo el código que estoy utilizando por si veis algún fallo

importClass(“VByteArray”);

//Leemos la cadena  
var cadena = theRoot.varToString(“CAD”);

var oTexto = new VByteArray();  
oTexto.setText(cadena);

var oByteArray = new VByteArray();  
oByteArray.toBase64(oTexto);

theRoot.setVar(“COD”,oByteArray.toLatin1String());

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [3 Abril, 2020 23:12 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/2 "2020-04-03T23:12:26Z")

</div>

Hola desarrollo.

Ese código no puede funcionar.

Prueba éste que puse hace pocos dias en el foro.

var oBA = new VByteArray()  
var cXML = theRoot.varToString(“CXML”)  
oBA.setText(cXML)  
var oB64 = oBA.toBase64()  
theRoot.setVar(“CBASE64”, oB64.toLatin1String())

No es necesaerio el importClass()

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![alfonsocotes](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/alfonsocotes/32/4020_2.png) [@alfonsocotes](https://foros.velneo.com/u/alfonsocotes)\
**Post date:** [5 Agosto, 2020 23:00 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/3 "2020-08-05T23:00:59Z")

</div>

Hola, si quiero hacer lo contrario de Base64 a texto seria asi?

// Obtenemos el string de la variable en Base64  
var cBase64 = theRoot.varToString(“BASE64”);

// Define el string Base64  
var oTexto = new VByteArray();  
// Rellenamos un VByteArray con el string Base64  
oTexto.setText(cBase64);

// Obtenemos el ByteArray original de Base64  
var oByteArray = new VByteArray();  
oByteArray.fromBase64(oTexto);

// Define el contenido de la variable de texto  
[//theRoot.setVar](https://theRoot.setVar)(“TXT”, oTexto.toLatin1String());  
theRoot.setVar(“TXT”, oByteArray.toLatin1String);

Estoy intentando tambien adivinar porque no me funciona nada y el vclient se rompe algunas veces.

Agradezco muco una ayuda con esto. Por favor.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [6 Agosto, 2020 14:44 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/4 "2020-08-06T14:44:29Z")

</div>

Hola alfonsocotes.

Primero nos tendrás que decir qué has codificado en la cadena de texto **cBase64**.  
Es texto, imagen, archivo binario …?

Si **oByteArray** resulta en un array de contenido binario, la función **toLatin1String** devolverá contenido basura.

En cualquier caso le faltan los paréntesis a la función **toLatin1String**.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![alfonsocotes](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/alfonsocotes/32/4020_2.png) [@alfonsocotes](https://foros.velneo.com/u/alfonsocotes)\
**Post date:** [6 Agosto, 2020 19:35 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/5 "2020-08-06T19:35:14Z")

</div>

En la variable cBase64 asigno un texto codificado en Base64, pero efectivamente me di cuenta que hacian falta los parentesis al final de toLatin1String.

Para convertir o “traducir” de Base64 a Texto, me quedo funcionando de esta manera:

// Obtiene el string en Base64  
var cBase64 = theRoot.varToString(“BASE64”);

// Define el objeto vByteArray  
var oTexto = new VByteArray();  
// Rellenamos un VByteArray con el string Base64  
oTexto.setText(cBase64);

// Obtiene el texto traducido de Base64  
var oByteArray = new VByteArray();  
oByteArray.fromBase64(oTexto);

// Retorna el contenido de la variable de texto  
theRoot.setVar(“TXT”, oByteArray.toLatin1String());

Muchas gracias por tu interés y por notar la confirmación de mi error.

---

<div class="post-metadata">

**Author:** ![alfonsocotes](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/alfonsocotes/32/4020_2.png) [@alfonsocotes](https://foros.velneo.com/u/alfonsocotes)\
**Post date:** [6 Agosto, 2020 19:37 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/6 "2020-08-06T19:37:54Z")

</div>

También pude hacer el que convierte una cadena de texto a Base64, de la siguiente manera:

// Obtenemos el string de la variable TXT  
var cTexto = theRoot.varToString(“TXT”);

// Rellenamos un VByteArray con el string TXT  
var oByteArray = new VByteArray();  
oByteArray.setText(cTexto);

// Convertimos el TXT a Base64  
var oBase64 = oByteArray.toBase64();

// Retorna el contenido de la variable Base64  
theRoot.setVar(“BASE64”, oBase64.toLatin1String());

Gracias a ti Paco Satué

---

<div class="post-metadata">

**Author:** ![ereitmann](https://avatars.discourse-cdn.com/v4/letter/e/8491ac/32.png) [@ereitmann](https://foros.velneo.com/u/ereitmann)\
**Post date:** [6 Agosto, 2020 22:14 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/7 "2020-08-06T22:14:13Z")

</div>

Hola paco como seria para codificar en vez de un texto una imagen?

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [9 Agosto, 2020 08:18 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/8 "2020-08-09T08:18:20Z")

</div>

Hola ereitmann.

Tenéis ejemplos de codificación **Base 64** en la aplicación **MiAPI** , en la rama de **VByteArray**.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![basesoft1](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/basesoft1/32/4546_2.png) [@basesoft1](https://foros.velneo.com/u/basesoft1)\
**Post date:** [13 Octubre, 2021 08:59 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/9 "2021-10-13T08:59:30Z")

</div>

Buenos días!

Tengo un problema, la cadena en base64 que tengo que descodificar está en UTF-8, por lo que al descodificarla usando el javascript de @pacosatu me salen mal las “ñ” y resto de caracteres “especiales”.

¿Hay alguna manera de que la última línea exporte el valor de la variable sin transformarla en Latin1? Aquí os pongo el javascript que estoy usando:

var textoBase64 = theRoot.varToString(“TXT\_BASE64”);  
var textoOriginal = new VByteArray();  
textoOriginal.setText(textoBase64);  
var textoOriginal2 = new VByteArray();  
textoOriginal2.fromBase64(textoOriginal);  
theRoot.setVar(“TXT\_ORIG”, textoOriginal2.toLatin1String());

He probado con “theRoot.setVar(“TXT\_ORIG”, textoOriginal2.toUtf8String());” pero no funciona…

Muchas gracias de antemano,  
Noé.-

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [13 Octubre, 2021 11:25 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/10 "2021-10-13T11:25:23Z")

</div>

Hola basesoft.

Efectívamente, las cadenas de texto codificadas en UTF-8 no funcionarán con el VByteArray del API.

Tendrás que recurrir a la cadena original en UTF-8 y pasarle la función [encodeURIComponent](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent).

Al final del proceso usas la función [decodeURIComponent](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent) para obtener la cadena UTF-8 original.

Tienes un ejemplo de codificación de caracteres especiales en la aplicación **MiAPI** , rama VByteArray.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![lgonzalez](https://avatars.discourse-cdn.com/v4/letter/l/fbc32d/32.png) [@lgonzalez](https://foros.velneo.com/u/lgonzalez)\
**Post date:** [22 Mayo, 2025 05:10 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/11 "2025-05-22T05:10:38Z")

</div>

Buen aporte, estaba buscando esta conversión de texto a base64, ni en la documentación de doc.velneo lo tienen correcto.

Ahora @pacosatu desde la base64 y al volver a convertir de base64 a texto las letras mayúsculas se colocan como minúsculas, hay la menera de mantener correctamente la nomenclatura origen?

Gracias su ayuda

---

<div class="post-metadata">

**Author:** ![correo](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/correo/32/5689_2.png) [@correo](https://foros.velneo.com/u/correo)\
**Post date:** [22 Mayo, 2025 15:25 UTC](https://foros.velneo.com/t/codificar-cadena-en-base64/10379/12 "2025-05-22T15:25:37Z")

</div>

Hola lgonzalez.

Revisa tu código porque en la codificación base64 no hay conversión mayúsculas/minúsculas.

Saludos  
Paco Satué
