PHP函数iconv(),mb_convert_encoding()无法将KOI8-R转换为CP1251

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

[使用Windows应用程序将数据从Cronos数据库导出到TXT文件后,我遇到了一个问题-无法在Linux服务器上正确查看导出的数据(在Windows上可以查看)。

这里是一个例子:

цНПНД|||пЮИНМ|||сКХЖЮ

我已经尝试使用PHP进行转换,因为以后需要将其转换为巨大的SQL文件。

Charset-decoding服务向我展示了此文本应从KOI8-R转换为CP1251,所以我已经使用iconv()和mb_convert_encoding()对其进行了尝试>>

所以,让我们尝试一下:

$string = iconv('KOI8-R', 'CP1251', $string);

结果是:Notice: iconv(): Detected an illegal character in input string

我已经// IGNORE进行了搜索,然后重试:$string = iconv('KOI8-R', 'CP1251//IGNORE', $string);

结果是:相同的字符串-цНПНД|||пЮИНМ|||сКХЖЮ

然后是mb_convert_encoding,没有“ from-encoding”参数:$ string = mb_convert_encoding($ string,'CP1251');

结果是:?????|||?????|||?????

...,并带有“来自编码”:цНПНД|||пЮИНМ|||сКХЖЮ

然后进行镜像尝试(cp1251至koi8-r)。使用iconv(),我得到了“在输入字符串中检测到非法字符”; mb_convert_encoding给了我一些新的东西:зПТПД|||тБКПО|||хМЙГБ尝试将其转换为UTF-8显示了很多不同的符号。

我也想使用Notepad ++转换此文件,但是它不允许我打开2.5GB的txt文件:(

我也尝试过使用iconv作为二进制文件-相同的错误。

我需要将其转换为可读的俄语符号。最好的方法是将其转换为UTF-8,但我不怎么做]

Linux node03 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linuxiconv (Ubuntu GLIBC 2.23-0ubuntu11) 2.23

Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0ubuntu0.16.04.2, Copyright (c) 1999-2017, by Zend Technologies```

使用Windows应用程序将数据从Cronos数据库导出到TXT文件后,我遇到了问题-无法在Linux服务器上正确查看导出的数据(在Windows上可以查看)。这是一个...

php iconv
1个回答
0
投票

将CP1252与西里尔字母一起使用不是一个好主意。使用UTF-8。

© www.soinside.com 2019 - 2024. All rights reserved.