CSV tiếng Trung trong Excel: UTF-8, GBK và lỗi hiển thị chữ

Các tờ bảng tính và kính lúp
Mục lục

Nếu CSV tiếng Trung mở ra thành những ký hiệu không đọc được, trước hết hãy giữ một bản sao chưa chỉnh sửa. Tệp có thể chứa các byte văn bản hợp lệ nhưng Excel lại diễn giải bằng sai mã hóa ký tự. Ghi đè bản hiển thị lỗi lên tệp gốc có thể khiến việc khôi phục khó hơn.

CSV lưu văn bản và dấu phân cách. Tên tệp không xác định đáng tin cậy mã hóa của nó, và CSV không giữ cùng định dạng trang tính như sổ làm việc Excel. Đọc đúng byte là bước đầu; giữ nguyên mã và ngày tháng trong bảng là bước riêng.

Chọn mã hóa đã dùng khi lưu tệp

UTF-8 được dùng rộng rãi trong trao đổi văn bản hiện nay. Những tệp xuất từ hệ thống cũ ở Trung Quốc đại lục có thể dùng GBK hoặc một mã hóa tiếng Trung liên quan, còn một số tệp chữ phồn thể dùng Big5. Một cụm chữ trông như phồn thể không tự chứng minh tệp dùng Big5: tệp Unicode có thể chứa cả hai dạng chữ.

Nếu có thể, hỏi người gửi họ dùng mã hóa nào khi xuất. Nếu không biết, thử xem trước bằng các mã hóa có khả năng phù hợp rồi kiểm tra từ thực tế, tên ít gặp và dấu câu. Bộ giải mã chấp nhận byte mà không báo lỗi chưa có nghĩa là bạn đã chọn đúng.

Sơ đồ: 中文: UTF-8 E4 B8 AD E6 96 87; GBK D6 D0 CE C4

Dùng bản xem trước nhập văn bản của Excel

Thay vì chỉ nhấp đúp, hãy dùng quy trình nhập văn bản hoặc CSV của Excel. Trong các phiên bản máy tính hiện nay, tùy chọn này thường nằm trên thẻ Dữ liệu qua chức năng nhập Văn bản/CSV. Chọn mã hóa nguồn và dấu phân cách, sau đó kiểm tra bản xem trước rồi mới tải bảng. Tên menu có thể khác theo phiên bản và ngôn ngữ.

Dấu thứ tự byte UTF-8, gọi là BOM, có thể giúp Excel nhận ra UTF-8 khi mở trực tiếp tệp. Đây là dấu nhận diện mã hóa ở đầu tệp, không phải một phần tên cột đầu tiên. Một số hệ thống tiếp nhận yêu cầu UTF-8 không BOM, nên cần chọn đầu ra phù hợp với ứng dụng kế tiếp.

Chuyển bản xem trước đọc được sang UTF-8

  1. Mở bản sao không quá 5 MB trong công cụ đổi mã hóa tệp tiếng Trung.
  2. Chọn mã hóa nguồn thực tế và đọc bản xem trước.
  3. Kiểm tra vài tên hoặc mô tả tiếng Trung, không chỉ hàng tiêu đề.
  4. Xuất UTF-8 và chọn BOM nếu phù hợp với ứng dụng nhận tệp.
  5. Mở lại tệp đã xuất, đối chiếu những hàng tiêu biểu với nguồn ban đầu.

Đổi phần mở rộng hoặc thêm BOM không biến byte GBK thành byte UTF-8. Quá trình chuyển đổi phải giải mã đúng văn bản nguồn trước, rồi mã hóa văn bản đó theo định dạng đích.

Giữ số 0 đầu và mã dài

Ngay cả khi tiếng Trung đã hiển thị đúng, Excel vẫn có thể hiểu mã thành số hoặc ngày tháng. Khi nhập, đặt những cột liên quan thành văn bản. Một mã định danh như 001234 phải giữ đủ sáu ký tự; hiển thị thành 1234 là mất thông tin.

Khác biệt độ rộng ký tự cũng có thể ảnh hưởng đến đối chiếu dữ liệu. Nếu một tệp có A123 và tệp khác có A123, hãy chủ động dùng chuyển đổi độ rộng cho đúng trường đó. Việc này không sửa lỗi mã hóa và không nên áp dụng tùy tiện lên toàn bộ văn xuôi.

Phân biệt ba biểu hiện thường gặp

Hiện tượng nhìn thấyKiểm tra trước tiên
Tên tiếng Trung thành ký hiệu không liên quanMã hóa ký tự nguồn
Văn bản đọc được nhưng dồn vào một cột dàiDấu phân cách và dấu ngoặc kép
001234 thành 1234Kiểu dữ liệu cột

Các vấn đề này có thể xuất hiện cùng lúc nhưng có nguyên nhân khác nhau. Chỉ chọn UTF-8 không tự chia cột cho tệp dùng dấu chấm phẩy khi trình nhập đang chờ dấu phẩy. Chọn dấu phân cách không khôi phục chữ Hán đã giải mã sai. Đặt cột thành văn bản bảo vệ mã định danh nhưng không xác định được mã hóa ban đầu của tệp.

Kiểm tra bản xem trước theo thứ tự: chữ đọc được, ranh giới trường đúng, kiểu cột phù hợp. Dùng vài hàng có tiếng Trung, mã bắt đầu bằng số 0 và trường có dấu câu. Hàng tiêu đề chỉ gồm chữ cái ASCII có thể trông đúng ở nhiều mã hóa, nên chưa đủ để xác nhận phần còn lại.

Giữ một mẫu nhỏ để đối chiếu

Tệp thử minh họa có thể gồm ba trường: tên, mã và ghi chú. Tên có thể là 李明, mã là 001234, ghi chú là một cụm tiếng Trung ngắn. Đây là dữ liệu thử, không phải hồ sơ khách hàng thật. Giữ văn bản mong đợi cạnh tệp để đối chiếu cùng những giá trị đó sau mỗi lần nhập hoặc xuất.

Nếu một trường chứa dấu phân cách của tệp hoặc xuống dòng bên trong, chương trình ghi CSV phải đặt dấu ngoặc kép đúng cách. Vì vậy, số dòng văn bản không luôn bằng số bản ghi: một ô trong ngoặc kép có thể chứa xuống dòng. Khi kiểm tra đầu ra, đối chiếu các hàng và cột đã phân tích thực tế, đừng cho rằng tệp đầy đủ chỉ vì số dòng nhìn thấy có vẻ hợp lý.

Sau khi chuyển sang UTF-8, mở lại tệp mới bằng cách chọn rõ UTF-8 và so các giá trị mẫu. Sau đó thử nhập trong chính ứng dụng sẽ nhận tệp. Tệp có thể đúng mã hóa nhưng vẫn dùng dấu phân cách hoặc thứ tự cột khác với quy trình tiếp nhận.

Chọn đầu ra cho bước tiếp theo

UTF-8 có BOM hữu ích trong một số quy trình mở trực tiếp bằng Excel vì dấu nhận diện giúp xác định mã hóa. Trình nhập khác có thể yêu cầu UTF-8 không BOM. Không lựa chọn nào tốt hơn trong mọi trường hợp; dùng định dạng ứng dụng kế tiếp chỉ định và thử bằng cùng những hàng tiêu biểu.

BOM không sửa được văn bản đã bị giải mã sai trước khi xuất. Nếu bản xem trước đã có ký tự sai, dừng trước khi lưu và sửa lựa chọn mã hóa nguồn. Thêm dấu UTF-8 vào những ký tự đó chỉ tạo một tệp mới vẫn chứa văn bản sai.

Nếu cần giữ công thức, nhiều trang tính, kiểu ô hoặc cấu trúc bảng tính phức tạp, CSV không thay thế được sổ làm việc. Khi các tính năng này quan trọng, giữ sổ làm việc làm tài liệu thao tác và chỉ xuất CSV cho bước truyền dữ liệu cụ thể. Chuyển đổi văn bản thành công không đồng nghĩa mọi tính năng bảng tính đều được giữ lại.

Nhận biết thông tin đã mất

Nếu tệp đã lưu chứa ký tự thay thế hoặc dấu hỏi thông thường tại chỗ trước đây là tiếng Trung, chọn mã hóa khác có thể không khôi phục được. Hãy quay lại bản gốc chưa sửa hoặc yêu cầu xuất lại. Công cụ chuyển đổi có thể diễn giải lại các byte còn tồn tại, nhưng không tái tạo được văn bản đã bị ghi đè và không còn trong tệp.

Bình luận

Đang tải…

Chưa có bình luận.