gpt4 book ai didi

php - 字符集问题,MySQL 和 get_meta_tags()

转载 作者:行者123 更新时间:2023-11-29 15:07:36 26 4
gpt4 key购买 nike

我正在尝试使用 get_meta_tags() 函数使用 PHP 获取 HTML 元标记。我对表、字符集/排序规则、MySQL 和其他所有内容的连接字符集使用 UTF8。

但不幸的是,MySQL 在插入表时会截断该字符串。当 HTML 编码与 UTF-8 不同时(例如 ISO 8859-1),就会发生这种情况

有没有办法在不知道它的编码字符集的情况下将字符串转换为 UTF8?

最佳答案

示例:

<?php 
// ------------------------------------------------------------

header('Content-Type:text/html; charset=utf-8');


// ------------------------------------------------------------

function str_to_utf8($string) {
if (mb_detect_encoding($string, 'UTF-8', true) === false) {
$string = utf8_encode($string);
}
return $string;
}

// ------------------------------------------------------------


$url = 'http://example.org'; // ---- The URL to get Meta-Tags from ---


// ------------------------------------------------------------

$meta_raw = get_meta_tags($surl);

$meta_enc = array();

foreach($meta_raw as $mkey => $mval) {
$meta_enc[$mkey] = str_to_utf8($mval);
}


// ------------------------------------------------------------

print "<p>the (old) raw data</p>\n";
print "<pre style=\"margin:6px; padding:6px; background:#FFFFCC; text-align:left;\">\n";
print_r($meta_raw);
print "</pre>\n";

print "<br />\n";
print "<br />\n";

// ------------------------------------------------------------

print "<p>the (new) utf8 encoded data</p>\n";
print "<pre style=\"margin:6px; padding:6px; background:#DEDEDE; text-align:left;\">\n";
print_r($meta_enc);
print "</pre>\n";

print "<br />\n";
print "<br />\n";

// ------------------------------------------------------------
?>

:)

在函数中:str_to_utf8($string) { ... }您还可以使用不同的方式对 $string 进行检测和编码像 iconv(), mb_convert_encoding(), ...

关于php - 字符集问题,MySQL 和 get_meta_tags(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1665479/

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