KeePass has two versions, they are KeePass version 1 and Keepass version 2, namely KeePass 2. They are using different file formats: kdb and kdbx. KeePass is natively runnable in Windows; KeePass 2 requires .NET Framework 2.0 (and above) or Mono (and above). That is why, KeePass 2 is able to run in Linux. Then, KeePassX is a port of KeePass, so that it works as cross-platform, including Windows. However, KeePassX is not based on KeePass 2. Thus, it cannot read/write kdbx. But, there is KeePassX version 2 in the alpha stage, which is available in GitHub.
CJK problem in KeePass 2 (Linux)
I personally found that KeePass 2 on Linux has several problems. CJK (Chinese/Japanese/Korean) characters do not work in KeePass 2. To make it work with Fcitx, I have to edit the desktop entry (.desktop) file by changing the exec to
Exec=sh -c 'GTK_IM_MODULE=xim QT_IM_MODULE=xim LANG=zh_CN.UTF8 keepass'
Besides that, I also found that KeePass 2 is a little slow. Nevertheless, KeePass 2 is more up-to-date comparing to KeePassX.
Format conversion in Linux
Because of the big differences of KeePass and KeePass 2, file conversion between the two versions has a little trouble, especially in Linux. KeePass 2 in Windows can import from and export to KeePass 1 format (xdb). Yet KeePass 2 in Linux does not work. So, my solution is using Wine with PlayOnLinux.
Download KeePass 2 for Windows, install .NET Framework 2.0 on Wine using PlayOnLinux, install KeePass 2. Then you can run KeePass 2 Windows version smoothly on Linux. As a result, you can import/export the xdb file. (Please aware that the CJK conversion may not work properly.)
So, if you are a Linux user, you can choose over KeePassX, KeePass 2, or KeePassX in GitHub, or even running KeePass Windows version in Wine.