如何处理任何字符集

问题描述 投票:-1回答:1

当前我有utf8字符集(doctrine.dbal.charset)

如何提供将任何编码数据存储在db中的可能性?

我的应用程序使用户可以上传带有数据的文件(csv)。数据将被排除并分别存储到数据库的不同列中。

问题是,他们不仅上传utf8编码的文件。大多数转换器在转换时会丢失/破坏数据(例如:cp1251-> utf8)

mysql symfony character-encoding doctrine
1个回答
0
投票
client具有以CHARACTER SET cp1251编码的数据。您也可以在LOAD DATA语句中指定该值,这是将CSV文件读入MySQL表的最简单,最快的方法。

除非csv文件具有一些螺丝钉语法,LOAD DATA会为您完成所有解析,等等。

我认为

all

cp1251字符具有对应的utf8编码。因此您可以(可能应该)将doctrine.dbal.charset声明为utf8(或者更好的是utf8mb4)。 cp1251和latin1受支持CHARACTER SETs

如果遇到Mojibake,截断或问号,请参阅Trouble with UTF-8 characters; what I see is not what I stored

如果您不知道文件具有什么字符集,请提供几十个字符的十六进制;我大概可以弄清楚。 MySQL会简单地对任何错误指定的字符集使用barf。
© www.soinside.com 2019 - 2024. All rights reserved.