When Chinese text (table data or column comments) was written to MySQL through a connection using the wrong charset (e.g. latin1/CP1252), each byte of the correct UTF-8 representation was stored as a separate CP1252 character, then re-encoded as UTF-8 on read, resulting in garbled display like "主é"®" instead of "主键". This commit adds a `fix_potential_double_encoding` function that reverses the CP1252→UTF-8 double-encoding at read time, with a safety check that only applies the fix when the decoded result contains CJK characters, avoiding any impact on legitimate Latin-1 or ASCII text. Changes: - Add fix_potential_double_encoding() helper with full CP1252 mapping for the 0x80-0x9F range (€, ", ", etc.) - Apply fix in mysql_value_to_json() to cover all table data display - Apply fix in get_columns() to cover column comments via information_schema.COLUMNS - Apply fix in get_columns_show() to cover column comments via SHOW FULL COLUMNS (fallback path) - Minor formatting: break long line in columns_sql() |
||
|---|---|---|
| .. | ||
| dbx-core | ||
| dbx-web | ||
| README.md | ||
README.md
Crates
Rust crates for DBX live here.
Directories
dbx-core/- shared database core, drivers, schema/query logic, import/export, transfer, and plugin support.dbx-web/- the Docker/web backend service binary published asdbx-web.
The workspace root is defined in the repository-level Cargo.toml.