Hướng dẫn array to utf 8 php - mảng sang utf 8 php

23

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một mảng:

require_once ('config.php');
require_once ('php/Db.class.php');
require_once ('php/Top.class.php');

echo "db";

$db = new Db(DB_CUSTOM);
$db->connect();

$res = $db->getResult("select first 1 * from reklamacje");

print_r($res);

Tôi muốn chuyển đổi nó từ Windows-1250 thành UTF-8, vì tôi có các ký tự như �

Best.

Khi được hỏi ngày 22 tháng 5 năm 2013 lúc 9:26May 22, 2013 at 9:26

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

4

$utfEncodedArray = array_map("utf8_encode", $inputArray );

Công việc và trả về một mảng tuần tự với các khóa số (không phải là PGS).

Đã trả lời ngày 5 tháng 11 năm 2013 lúc 21:09Nov 5, 2013 at 21:09

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

MaxmaxMax

2.40921 Huy hiệu bạc26 Huy hiệu đồng21 silver badges26 bronze badges

3

array_walk(
    $myArray,
    function (&$entry) {
        $entry = iconv('Windows-1250', 'UTF-8', $entry);
    }
);

Đã trả lời ngày 22 tháng 5 năm 2013 lúc 9:31May 22, 2013 at 9:31

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Mark Bakermark BakerMark Baker

207K31 Huy hiệu vàng339 Huy hiệu bạc380 Huy hiệu Đồng31 gold badges339 silver badges380 bronze badges

Trong trường hợp kết nối PDO, những điều sau đây có thể giúp ích, nhưng cơ sở dữ liệu phải có trong UTF-8:

//Connect
$db = new PDO(
    'mysql:host=localhost;dbname=database_name;', 'dbuser', 'dbpassword',
    array('charset'=>'utf8')
);
$db->query("SET CHARACTER SET utf8");

Đã trả lời ngày 25 tháng 12 năm 2014 lúc 20:38Dec 25, 2014 at 20:38

TorstentorstenTorsten

Phù hiệu bằng đồng 1711 Huy hiệu đồng1 silver badge2 bronze badges

1

Có một cách dễ dàng

array_walk_recursive(
  $array,
  function (&$entry) {
    $entry = mb_convert_encoding(
        $entry,
        'UTF-8'
    );
  }
);

Đã trả lời ngày 9 tháng 9 năm 2016 lúc 6:44Sep 9, 2016 at 6:44

PHPDevphpDevphpdev

1511 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges

1

Bạn có thể sử dụng một cái gì đó như thế này:

<?php
array_walk_recursive(
$array, function (&$value)
{
 $value = htmlspecialchars(html_entity_decode($value, ENT_QUOTES, 'UTF-8'), ENT_QUOTES, 'UTF-8');
}
);
?>

John

Huy hiệu vàng 12K1190 Huy hiệu bạc157 Huy hiệu đồng11 gold badges90 silver badges157 bronze badges

Đã trả lời ngày 12 tháng 9 năm 2013 lúc 12:31Sep 12, 2013 at 12:31

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

0

Bạn có thể gửi mảng đến chức năng này:

function utf8_converter($array){
    array_walk_recursive($array, function(&$item, $key){
        if(!mb_detect_encoding($item, 'utf-8', true)){
            $item = utf8_encode($item);
        }
    }); 
    return $array;
}

Nó hoạt động cho tôi.

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Đáng giá

1.2041 Huy hiệu vàng16 Huy hiệu bạc18 Huy hiệu đồng1 gold badge16 silver badges18 bronze badges

Đã trả lời ngày 22 tháng 7 năm 2020 lúc 17:57Jul 22, 2020 at 17:57

Ông Panchomr. PanchoMr. Pancho

891 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges

Câu trả lời trước đây không phù hợp với tôi :( nhưng nó ổn như vậy :)

         $data = json_decode(
              iconv(
                  mb_detect_encoding($data, mb_detect_order(), true),
                  'CP1252',
                  json_encode($data)
                )
              , true)

Đã trả lời ngày 5 tháng 11 năm 2019 lúc 22:15Nov 5, 2019 at 22:15

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Bạn có thể sử dụng hàm

$utfEncodedArray = array_map("utf8_encode", $inputArray );
2 để thực hiện những gì bạn muốn. Nó là cho một chuỗi duy nhất. Bạn có thể viết chức năng của riêng mình bằng cách sử dụng mà bạn có thể chuyển đổi một mảng với sự trợ giúp của hàm UTF8_ENCODE.

Đã trả lời ngày 22 tháng 5 năm 2013 lúc 9:30May 22, 2013 at 9:30

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Vivek Sadhvivek SadhVivek Sadh

4.2002 Huy hiệu vàng30 Huy hiệu bạc48 Huy hiệu đồng2 gold badges30 silver badges48 bronze badges

1

Do bài viết này là một trang web SEO tốt, vì vậy tôi đề nghị sử dụng chức năng tích hợp "mb_convert_variables" để giải quyết vấn đề này. Nó hoạt động với cú pháp đơn giản.

$utfEncodedArray = array_map("utf8_encode", $inputArray );
3

Đã trả lời ngày 15 tháng 1 năm 2016 lúc 2:16Jan 15, 2016 at 2:16

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Jerry Chenjerry ChenJerry Chen

Huy hiệu bạc 311 Bạc51 silver badge5 bronze badges

0

Một chức năng tổng quát hơn để mã hóa một mảng là:

/**
 * also for multidemensional arrays
 *
 * @param array $array
 * @param string $sourceEncoding
 * @param string $destinationEncoding
 *
 * @return array
 */
function encodeArray(array $array, string $sourceEncoding, string $destinationEncoding = 'UTF-8'): array
{
    if($sourceEncoding === $destinationEncoding){
        return $array;
    }

    array_walk_recursive($array,
        function(&$array) use ($sourceEncoding, $destinationEncoding) {
            $array = mb_convert_encoding($array, $destinationEncoding, $sourceEncoding);
        }
    );

    return $array;
}

Đã trả lời ngày 12 tháng 2 năm 2018 lúc 8:59Feb 12, 2018 at 8:59

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Cách đơn giản mà tha hoạt động là:

$utfEncodedArray = array_map("utf8_encode", $inputArray );
4

//Example #1 Example of the function array_map()

<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

Đầu ra của $ B là:

$utfEncodedArray = array_map("utf8_encode", $inputArray );
0

Đối với các chi tiết tương lai SRC -> PHP: Array_Map - Hướng dẫn sử dụng

Đã trả lời ngày 23 tháng 9 năm 2021 lúc 15:38Sep 23, 2021 at 15:38

Hướng dẫn array to utf 8 php - mảng sang utf 8 php

Thay vì sử dụng đệ quy để đối phó với các mảng đa chiều, có thể chậm, bạn có thể làm như sau:

$utfEncodedArray = array_map("utf8_encode", $inputArray );
1

Điều này sẽ chuyển đổi bất kỳ ký tự được đặt thành UTF8 và cũng bảo quản các phím trong mảng của bạn. Vì vậy, thay vì "lười biếng" chuyển đổi từng hàng bằng cách sử dụng

$utfEncodedArray = array_map("utf8_encode", $inputArray );
5, bạn có thể thực hiện toàn bộ kết quả được đặt trong một lần.

Đã trả lời ngày 16 tháng 8 năm 2014 lúc 23:26Aug 16, 2014 at 23:26

Josh Stuartjosh StuartJosh Stuart

1.5021 Huy hiệu vàng13 Huy hiệu bạc23 Huy hiệu đồng1 gold badge13 silver badges23 bronze badges

1