FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
SQLite + acentos y eñes
Buenos días a todos!
He tratado de buscar información al respecto pero la que he encontrado no resuelve mi problema. Tengo una conexión con Firedac y SQLite, lo que me sucede es que cuando inserto en un campo registros con acentos, otros caracteres como "ñ", me los sustituye por símbolos extraños dentro de la tabla de la BD, como rombos, signos de interrogación, etc. He probado cambiando las opciones de OpenMode y StringFormat de la conexión pero ninguna de ellas me ha resuelto este problema. La inserción la hago desde código Deplhi hacia SQLite. Alguien se ha topado con este problema que me pueda echar una mano?. Gracias de antemano! |
#2
|
||||
|
||||
¿Usas utf8 en tu programa delphi?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
|||
|
|||
Lo he probado creando los parámetros en tiempo de ejecución como lo expuesto anteriormente, como directo en las parámetros del componente desde el inspector de Delphi.
|
#5
|
||||
|
||||
¿Y los datos que guardas son utf8 o iso8859?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
|||
|
|||
Bueno, la verdad es que eso no lo tengo claro, estoy ejecutando una consulta de prueba desde Delphi con la sintaxis siguiente:
Básicamente actualizo un registro con ese nombre, me parecía algo normal, pero desde Delphi tengo el problema, obviamente si lo hago dentro de un editor de SQLite dentro de la propia BD me escribe correctamente los caracteres. |
#7
|
||||
|
||||
¿Qué versión de Delphi usas?
// Saludos |
#8
|
|||
|
|||
10.2 Tokyo
|
#9
|
||||
|
||||
Comprueba qué "encoding" tiene.
PRAGMA encoding; PRAGMA encoding = "UTF-8"; PRAGMA encoding = "UTF-16"; PRAGMA encoding = "UTF-16le"; PRAGMA encoding = "UTF-16be"; In first form, if the main database has already been created, then this pragma returns the text encoding used by the main database, one of "UTF-8", "UTF-16le" (little-endian UTF-16 encoding) or "UTF-16be" (big-endian UTF-16 encoding). If the main database has not already been created, then the value returned is the text encoding that will be used to create the main database, if it is created by this session. The second through fifth forms of this pragma set the encoding that the main database will be created with if it is created by this session. The string "UTF-16" is interpreted as "UTF-16 encoding using native machine byte-ordering". It is not possible to change the text encoding of a database after it has been created and any attempt to do so will be silently ignored. Once an encoding has been set for a database, it cannot be changed. Databases created by the ATTACH command always use the same encoding as the main database. An attempt to ATTACH a database with a different text encoding from the "main" database will fail.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
|||
|
|||
El pragma de la base es UTF-8
|
#11
|
|||
|
|||
Rectifico, el econding que devuelve el PRAGMA es UTF-8
|
#12
|
||||
|
||||
Pues entonces, por algún motivo, estás enviando texto que no es utf8 a la base de datos.
¿Has probado desde un software externo? (sqlite studio admin, sqliteman, etc.?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
|||
|
|||
Cuando ejecuto dentro del Admin de SQLite funciona bien, bueno, seguiré revisando a ver que puede ser, por el momento he optado por eliminar los acentos y otros caracteres del string que paso desde Delphi.
|
#14
|
||||
|
||||
A ver si estás enviando ansistring('ñÑáéíóú') en lugar de string('ñÑáéíóú')
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#15
|
|||
|
|||
En realidad opté por quitar los acentos, me he topado con varios quebraderos de cabeza con sqlite y este tema. más adelante cambiaré el motor de bases de datos. Gracias a todos por sus atenciones.
|
#16
|
||||
|
||||
Vaya, qué raro, yo llevo 7 años usando sqlite para android y nunca he tenido problemas con eso.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lazarus: TStringList.LoadFromFile error cuando la ruta tiene eñes/acentos | euMesmo | Lazarus, FreePascal, Kylix, etc. | 12 | 07-03-2015 01:19:38 |
problema con eñes y tildes | jarto | MySQL | 1 | 28-04-2005 16:01:47 |
Acentos y eñes | llonigualker | Varios | 3 | 20-11-2004 15:25:35 |
UPPER, UpperCase con eñes, tildes ... | Tomás | Firebird e Interbase | 3 | 15-01-2004 19:24:24 |
Ordernar a acentos y eñes (tablas dbase) | Jose_Pérez | SQL | 2 | 17-11-2003 16:49:20 |
|