0

我使用 MySQL 5.7,但我不知道如何配置它以正确显示越南语。

我已经设定

CREATE DATABASE brt
    DEFAULT CHARACTER SET utf8 COLLATE utf8_vietnamese_ci;

之后,我使用“LOAD DATA LOCAL INFILE”将越南人写入的数据加载到数据库中。

但是我经常在越南语字符显示中得到错误的结果。

详细代码和文件请通过我的GitHub查看,链接如下

https://github.com/fivermori/mysql

请告诉我如何解决这个问题。谢谢。

4

1 回答 1

0

正如@ysth 所建议的那样,使用utf8mb4将为您节省前进的麻烦。如果您将创建语句更改为如下所示,那么您应该很好:

CREATE DATABASE `brt` DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
USE `brt`;

DROP TABLE IF EXISTS `fixedAssets`;
CREATE TABLE IF NOT EXISTS `fixedAssets` (
    `id`            int(11)        UNSIGNED NOT NULL    AUTO_INCREMENT,
    `code`          varchar(250)     UNIQUE NOT NULL    DEFAULT '',
    `name`          varchar(250)            NOT NULL    DEFAULT '',
    `type`          varchar(250)            NOT NULL    DEFAULT '',
    `createdDate`   timestamp               NOT NULL    DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE INDEX `idx_fa_main` ON `fixedAssets` (`code`);

我已经使用您提供的数据对此进行了测试,并获得了预期的查询结果:

name
----------------------------------------------------------------
Mould Terminal box cover BN90/112 612536030 39 tháng
Mould W2206-045-9911-VN #3 ( 43 tháng)
Mould Flange BN90/B5 614260271 ( 43 tháng)
Mould 151*1237PH04pC11 ( 10 năm)
Transfer 24221 - 2112 ( sửa chữa nhà xưởng Space T 07-2016 ) BR2

使用utf8mb4字符集和utf8mb4_unicode_ci排序规则通常是确保您的数据库能够正确显示从纯 ASCII 到现代表情符号以及介于两者之间的所有内容的更简单方法之一。

于 2021-08-04T08:32:29.870 回答