Hola a todos!
Tengo una base de datos en mySQL la cual tengo conectada con XOJO.
veo que por default cuando creas una base de datos en mySQLWorkbench te crea un Schema o esquema con Latin_1 al igual que el charset por default para las tablas en Latin_1.
Ya prob a cambiar a utf_8 y a utf8_spanish tanto el schema como el charset de la tabla y los campo y sigo teniendo este problema de acentos.
Es decir en vez de decir: Camin, dice Cami@*n
Alguien sabe como puedo solucionar este problema?
Saludos
Los XML’s de los cuales estoy obteniendo la informacin para llenar mi base de datos, dice que su codificacin es utf-8
Es necesario definir la string que viene de la base de datos como UTF-8 con DefineEncoding
Mira aqui : http://documentation.xojo.com/index.php/Defineencoding
[quote=196291:@Michel Bujardet]Es necesario definir la string que viene de la base de datos como UTF-8 con DefineEncoding
Mira aqui : http://documentation.xojo.com/index.php/Defineencoding[/quote]
Y en caso de venir de un FolderItem?
Yo uso un folderitem y le paso el valor del folder item a un LoadXML(), este es mi código:
Dim dialog As SelectFolderDialog
Dim dir, file As FolderItem
// Create the dialog (does not actually show it)
dialog = New SelectFolderDialog
// The OpenDialog class supports custom prompts
dialog.PromptText = “Selecciona el directorio a cargar donde residan los XMLs”
//
and custom title’s
dialog.Title = “Lector de CFDis”
//Filtra los puros XML
dialog.Filter = ftInvoice.InvoiceFile
// Also, you can display the dialogs as sheets
// by calling dialog.ShowModalWithin(Self)
//
// For regular modal dialogs, just call dlg.showModal
dir = dialog.ShowModal
Dim xDocument As New XmlDocument
If dir <> Nil Then
For i as Integer = 1 to dir.count
if dir.item(i).type <> "" then
xDocument.LoadXml(dir.Item(i))
ProcessNode(xDocument.FirstChild)
ProcesarConceptos(xDocument)
GrabarCFDi
end if
Next
Else
MsgBox “No hay archivo”
Return
// User cancelled
End If
Ya prob a poner la propiedad en el databaserecord con el que estoy agregando los registros a la base de datos.
y no pasa nada.
dr.column(“Conceptos”)=Conceptos(i).DefineEncoding(Encodings.UTF8)
Donde DR es el databaserecord que uso para escribir los campos en las columnas de mi tabla en mySQL
y Conceptos es el nombre de la columna.
Debo de hacerlo de otro modo?
Saludos
¿ De donde vienen los datos ? ¿ De su aplicación o de una otra origen, como une otra plataforma ?
Los datos los importo de una serie de muchos archivos XML, todos codificacion UTF-8, son facturas XML, todos tienen caracteres con acentos.
Yo los importo mediante el uso de unos folder item para analizar el contenido de una carpeta o carpetas dentro de la carpeta que contengan archivos XML.
Proceso los contenidos de cada archivo XML y al final los agrego a mi base de datos mySQL abriendo la conexión.
dim dr as new databaserecord
if app.mdb.Connect then
y creando un databaserecord
lleno ese databaserecord con las columnas que quiero que lleve que extraje de cada XML.
De hecho probé el contenido de una de las variables que importo con un msgbox y me arroja el valor con acentos.
al final, grabo mi databaserecord con un InsertRecord, así:
App.mDb.InsertRecord (“facturas_recibidas”, dr)
Para conectar la base de datos de mySQL a xojo, hago lo siguiente:
’ Cargando Los valores de Conexion a nuestra base de datos MySQL
app.mdb = New MySQLCommunityServer
app.mDb.Host = “localhost”
app.mDb.UserName = “root”
app.mDb.Password = “THEPaSsWoRd”
// app.mDb.DatabaseName = “facturacion” // don’t do this part
If app.mDb.Connect Then
app.mDb.SQLExecute(“use facturacion”)
EstatusConexion.Text = “Conectado a mySQL”
if app.mDb.Error then
// no database by that name
end
end
’ Fin de la Rutina de Base de Datos MySQL
despues de la connecion,
especifica que la coneccion es utf8
app.mDb.SQLExecute(“SET NAMES ‘utf8’”)
[quote=196336:@Giulio Mastrosanti]despues de la connecion,
especifica que la coneccion es utf8
app.mDb.SQLExecute(“SET NAMES ‘utf8’”)[/quote]
Efectivamente funciona!, ahora tengo que añadirle el defineEncodings al recordset que rellena el listbox para que se vea adecuadamente, cierto?
Asi es, funciono!!!, ya se lo apliqu a mi listbox y me muestra los acentos como es debido.
Mil gracias