0

我从不同语言的 csv 字符插入..

我将此应用于每组字符:

    private function process_elements($element){
       utf8_encode($element);
      return $element;
}

问题是当他们进入数据库时​​,他们是这样的:

???????? ?? ???????????? ????? ??????? ??? ???????...

当我从数据库中检索它们时,我也得到了这个。

这发生在希腊语中。但是,当我检索希腊页面(通过报废)时,他们在 utf 编码的页面上。字符如下所示:

Δες webcam δωμάτια | Gr.ImLive.com

没关系,因为当我使用 utf8_encode 函数时,它们在屏幕上看起来很正常..

但是当数据从 csv 中取出并放入数据库时​​,我得到了那些问号..

有没有办法将任何语言编码为 utf.. 为什么从 csv 和 utf8 编码的网页中检索数据会产生如此大的差异.. 它们看起来一样.. 我该如何解决这个问题?

4

2 回答 2

2

请看看这个

它会帮助你

在 Web 应用程序中从前到后处理 Unicode

于 2012-06-13T07:46:50.003 回答
1

这不是关于“语言”,而是关于编码。文本被编码为位和字节。任何一个字节都等于任何其他字节。如果你只有一个字节,你就无法知道它代表什么编码。你可以猜到,但这并不准确。您必须通过阅读随附的元数据来了解某些文本的编码方式。这可能是文档、<meta>标签或 HTTP 标头。然后您需要处理该编码中的文本。

utf8_encode实际上文本从 ISO-8859-1转换为 UTF-8。它不会简单地将任何东西编码为 UTF-8,因为它也没有办法确定编码的东西。如果您的文本已经是 UTF-8 编码的或者不是 ISO-8859-1 编码的,那么您只是在混淆文本(就像您一样)。

于 2012-06-13T07:57:11.703 回答