将MySQL数据库从一台服务器移到另一台我的挪威字符后,这些挪威字符转换成一些奇怪的迹象。
我想创建一个PHP代码来修复字符集,当我给它一个输入字符串时,它就可以工作。但是,当我将查询结果作为输入字符串时,它不起作用。
此代码有效:
<?php
function fix_charset($value){
$value = str_replace("æ", "æ", "$value"); // æ
$value = str_replace('ø', "ø", "$value"); // ø
$value = str_replace("Ã¥", "å", "$value"); // å
// Return
return $value;
}
$input = "Still inn ønsket vekt i maskinen.
Fest på et tau.
Still deg med ryggen til maskinen og ta tak i tauet.
Gå ned slik at du sitter på knær. Trekk ned vekten samtidig som du går ned i utgangs-stillingen.";
$output = fix_charset($input);
echo"$input - $output";
?>
此代码无效:
$query = "SELECT exercise_id, exercise_preparation FROM exercise_index WHERE exercise_id=67";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_row($result);
list($get_current_exercise_id, $get_current_exercise_preparation) = $row;
function fix_charset($value){
$value = str_replace("æ", "æ", "$value"); // æ
$value = str_replace('ø', "ø", "$value"); // ø
$value = str_replace("Ã¥", "å", "$value"); // å
return $value;
}
// Fix charset
$inp_exercise_preparation = fix_charset($get_current_exercise_preparation);
$inp_exercise_guide = fix_charset($get_current_exercise_guide);
$result = mysqli_query($link, "UPDATE exercise_index SET exercise_preparation='$inp_exercise_preparation' WHERE exercise_id=67") or die(mysqli_error($link));
echo"
UPDATE exercise_index SET exercise_preparation=$inp_exercise_preparation WHERE exercise_id=67
";
?>
我也尝试了 utf8_decode($ value); ,但没有成功。