如何在PHP中将unicode编码为GB18030?

时间:2016-08-17 10:34:12

标签: php unicode

我知道如何在Python中执行此操作:

In [1]: u'中华人民共和国'.encode('GB18030').encode('base64')
Out[1]: '1tC7qsjLw/G5srrNufo=\n'

但是我需要在PHP中这样做,我不知道该怎么做。

2 个答案:

答案 0 :(得分:4)

您可以使用iconv将字符串从UTF-8(或您的初始编码)转换为GB18030,然后将base64_encode转换为结果。 E.g:

echo base64_encode(iconv('UTF-8', 'GB18030', '中华人民共和国'));

输出:

1tC7qsjLw/G5srrNufo=

请注意,PHP没有本机Unicode字符串 - 它们只是一堆字节,因此您需要指定字符串所在的编码。如果它是PHP中的字符串文字,它将是任何内容您用于文件的编码。

答案 1 :(得分:0)

echo mb_convert_encoding($str, "gb18030", "UTF-8");

将UTF-8替换为已有的文本编码。或者,第三个参数是可选的,即使没有该参数也可以使用。

mb_convert_encoding