TRemoteDBServer on Linux and special characters problem.

Hi,

I have a TRemoteDBServer running on linux and I have a problem when saving special characters("á é í ó ú") on database. If I connect directly to the database(or if the TRemoteDBServer runs on windows) the data is saved ok.

Any hints how to fix it.

Thanks in advance,

Omar Zelaya

Unfortunately, no. We need more information to have an idea of what's going on. Which database are you using? Are you using RemoteDB server on Linux, or client? Or both? Is your server/client properly configured in both sides, to properly handle Unicode characters?

I’m using firebird and running remotedbserver with UniDac under linux.

On Windows client I use Aurelius with UniDac or RemoteDB. When I use the unidac adapter and connect directly to firebird Unicode characters are saved ok. When I use the remoteDB adapter and connect to RemoteDBServer Unicode characters are not saved ok. When the remoteDBServer runs on windows unicode characaters are saved ok.

Do I have to do an additional configurartion on client and server when connecting to remoteDBServer under linux? I don not do any additional configuration when connecting direct to firebird on linux.

Thanks in advance,

Omar Zelaya

When using RemoteDB, you have to take into account that the RemoteDB server will be a database client from the point of view of the Firebird server.

So, my guess if that somehow when saving data from Linux app to the Firebird database, the characters are not being saved correctly. Maybe you should review the charset of the client.

One test would be creating a Linux app that saves data directly to the Firebird database using UniDac, and see if it saves correctly accessing the database directly from this Linux app in the same computer running your RemoteDB server.

Hi,

I'm testing a direct client on windows and linux.(charset = utf8 on both clients, database is firebird in linux).

When using Unidac and setting UseUnicode=true, works ok(Saving and loading special characters on win and linux client) using Aurelius and using TUniQuery. When using FireDac when using Aurelis is doesnt work, when using direct TFDQuery works ok, but I have to use .AsWideString to store and load values.

Any hints?

Thanks in advance,

Omar Zelaya

Have you tried changing your string properties in entities to WideString type, or setting Aurelius global config to use national varchar in string fields:

uses Aurelius.Global.Config;

TGlobalConfigs.GetInstance.MapStringToNationalChar := true;

Hi,

Setting the MapStringToNationalChar worked when connecting direct to DB, It does not work ok when using TRemoteDBServer.