gpt4 book ai didi

java - MYSQL特殊字符问题

转载 作者:行者123 更新时间:2023-11-29 03:43:26 25 4
gpt4 key购买 nike

这个问题困扰我很久了,我在互联网上搜索了很多次解决方案,尝试了很多但没有找到合适的解决方案。

我真的不知道该怎么做,如果你能帮助我,我将不胜感激。
(对不起,我的英语不好)。

问题:如何解决输入存档和MYSql表之间的字符集不兼容问题?

问题:当从我的计算机上导入存档时,信息出现在我的数据库中,但一些字符如 ('ã'、'ç'、'á' 等。 ) 显示为 ?

附加信息

  1. 我正在使用 MYSql,我的版本和变量状态是:

    MySQL VERSION : 5.5.10  HOST : localhost  USER : root  PORT : 3306  SERVER DEFAULT CHARSET : utf8  character_set_client  :  utf8  character_set_connection  :  utf8  character_set_database  :  utf8  character_set_filesystem  :  BINARY  character_set_results  :  utf8  character_set_server  :  utf8  character_set_system  :  utf8  collation_connection  :  utf8_general_ci  collation_database  :  utf8_general_ci  collation_server  :  utf8_general_ci  completion_type  :  NO_CHAIN  concurrent_insert  :  AUTO  
  2. The query that´s being used is:

    LOAD DATA LOCAL INFILE 'xxxxx/file.txt' 
    INTO TABLE xxxxTable
    FIELDS TERMINATED BY ';'
    LINES TERMINATED BY ' '
    IGNORE 1 LINES
    ( status_ordenar,numero,newstatus,rede,data_emissao,inicio,termino,tempo_indisp
    , cli_afet,qtd_cli_afet,cod_encerr,uf_ofensor,localidades,clientes_afetados
    , especificacao,equipamentos,area_ofens,descricao_encerr,criticidade,cod_erro
    , observacao,id_falha_perc,id_falha_conf,nba,solucao,falhapercebida,falhaconfirmada
    , resp_i,resp_f,resp_ue,pre_handover,falha_identificada,report_netcool,tipo_falha
    , num_notificacao,equip_afetados,descricao)
  3. 关于正在导入的文件:我用带有 3 个字符集的 open office 打开文件:

    UTF8 - 给我一些奇怪的字符来代替“ç”、“ã”等...
    ISO-8859-1 - 确定。
    WIN-1252 - 正常。
    ASCII/US - 好的。

  4. 已测试:我测试了数据库中的一些字符集:latin1、utf-8、ascii,但它们都给我相同的结果(?而不是 'á'、'ç' 等)。

  5. 额外:我使用 Java 和 Java JDBC 来生成和发送查询。

最佳答案

file.txt保存在ISO-8859-1或Windows-1252(这两个很相似),被MySQL解释为UTF-8。这些是不兼容的。

我怎么知道?

  • 参见第 3 点:文件在解释为 ISO-8859-1 或 Windows-1252 时正确显示。
  • 参见第 1 点:character_set_database : utf8

解决方案:要么将文件转换为 UTF-8,要么告诉 MySQL 将其解释为 ISO-8859-1 或 Windows-1252。

背景:您提供的字符(ã 等)在 windows-1252 中是单字节值,而这些字节在 UTF-8 中是非法值,因此会产生 '?'(unicode 替换字符)。

片段来自 MySQL docs :

LOAD DATA INFILE Syntax

The character set indicated by the character_set_database system variable is used to interpret the information in the file.

关于java - MYSQL特殊字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10179760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com