Como escribir palabras con Acentos y en mySQL

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