vanle33
Thành viên gạo cội




- Tham gia
- 30/10/08
- Bài viết
- 5,951
- Được thích
- 4,000
- Giới tính
- Nam
Em có down về 1 bản giá như sau
Không hiểu font chữ trong đó là font gì mà có rất nhiều ký tự lạ. Mong các bạn chuyển toàn bộ các dữ liệu ở cột A về font Times news roman hoặc VnTime
Thanks!
Hay qúa . Ok rồi bác ahBạn dùng Unikey với mã nguồn là UTF-8 và đích là Unicode thử xem
Hay qúa . Ok rồi bác ah
Em đang định chuyển toàn bộ hàng thành cột
Sau khi copy lại thì tự chuyển thành các cột rồi. Đúng là 1 công đôi việc. hiii
Đó là mã nguồn gì đó bác? Em chưa hiểu về mã đó lắm
1) Sao em không thấy Save as kiểu Unicode sau khi mở file bằng Note Pad nhỉ??Ai mà biết đâu nè. Cứ mở Unikey lên, thử từng em đến khi được thì thôi
Nhưng thường thì với file csv, tôi để ý thấy nếu người ta muốn hiển thị tiếng Việt có dấu thì người ta sẽ Save kiểu UTF-8
Vậy, ta cũng có cách chuyển đổi mà không cần đến Unikey:
- Mở file csv bằng Notepad
- Save As kiểu Unicode
- Xong, mở Excel, import file csv đã save Unicode khi nãy vào
Em save as được rồi nhưng sao khi mở lại file đó bằng Excel thì các font chữ vẫn bị lỗi???
Có phải open file bình thường không bác? hay import như thế nào ạ?
Bác ndu cho em hỏi làm sao xóa dấu nháy trong 1 số Cell ví dụ : '127141860000Làm cho bạn đây
Bác ndu cho em hỏi làm sao xóa dấu nháy trong 1 số Cell ví dụ : '127141860000
Em làm thử theo cách bài #27 http://www.giaiphapexcel.com/forum/showthread.php?71773-L%C3%A0m-sao-%C4%91%E1%BB%83-x%C3%B3a-d%E1%BA%A5u-nh%C3%A1y-trong-Cell/page3
nhưng không được??
1) Sao em không thấy Save as kiểu Unicode sau khi mở file bằng Note Pad nhỉ??
2) em làm theo cách bài #2 của bác thấy có lỗi ở cột B khá nhiều chữ ví dụ : L’ XO QUẢ GA , CHỐT PHAO X‚NG , BÁT PHỐT TRƯšC , NAN HOA TRƯšC CH‚N D€I ....
và còn nhiều chữ khác nữa. Phải sửa thế nào vậy bác?
Cám ơn bác, ở topic này em đã có file chuyển được mã đọc được rồi.Bộ mã chuyển đổi Unicode utf-8 của Unikey có một số lỗi. Tôi cũng không hiểu rõ có phải là do cơ chế định nghĩa bộ mã đầu vào của bác Phạm Kim Long bị sai hay không nhưng có một số ký tự đánh dấu bị lầm, đặc biệt là những nguyên âm phức có dấu nặng (ự,ậ, ặ ...vv). Xem hình ảnh kèm theo!
Ví dụ:
TẤM ÄỆM thực ra là TẤM ĐỆM và phải có thêm 1 dấu † để đặt dấu nặng trong khi Unikey chỉ dùng á» để thể hiện chữ Ệ
Chính vì mã đầu vào bị sai nên mã đầu ra cũng bị sai khi dùng Unikey để chuyển mã.
Khi tôi dùng Ultraedit để chuyển bộ mã Utf-8 của tiếng Việt cho công cụ chuyển mã thì phát hiện ra sự khác biệt này.
Xin chia sẻ!
View attachment 109851
Bộ mã chuyển đổi Unicode utf-8 của Unikey có một số lỗi. Tôi cũng không hiểu rõ có phải là do cơ chế định nghĩa bộ mã đầu vào của bác Phạm Kim Long bị sai hay không nhưng có một số ký tự đánh dấu bị lầm, đặc biệt là những nguyên âm phức có dấu nặng (ự,ậ, ặ ...vv). Xem hình ảnh kèm theo!
Ví dụ:
TẤM ÄỆM thực ra là TẤM ĐỆM và phải có thêm 1 dấu † để đặt dấu nặng trong khi Unikey chỉ dùng á» để thể hiện chữ Ệ
Chính vì mã đầu vào bị sai nên mã đầu ra cũng bị sai khi dùng Unikey để chuyển mã.
Khi tôi dùng Ultraedit để chuyển bộ mã Utf-8 của tiếng Việt cho công cụ chuyển mã thì phát hiện ra sự khác biệt này.
Xin chia sẻ!
View attachment 109851
Cảm ơn bác Siwtom.
Thực ra bài viết trên em cũng chỉ đoán theo cơ chế vì chưa tự mình giải thích được câu chuyện giống như chủ đề bài này. Có nhiều trường hợp dùng Unikey với Utf-8 thì đều bị lỗi như vậy. Nếu bác thử gõ với điều kiện chuyển bảng mã sang UTF-8 thì cũng gặp điều tương tự.
Ví dụ: nếu chuyển sang dùng UTF-8, em gõ chữ ộ=á», ệ=á» và dùng Unikey chuyển những cái đó ngược lại thành unicode thì không được. Còn một số ít ký tự khác cũng gặp vấn đề tương tự. Tuy nhiên khi dùng Ultra Edit để convert thì lại được - vì thế em mới quy tội cho vụ chuyển bảng mã.
Ví dụ đoạn văn sau, em gõ trong Ultra Edit rồi chuyển sang Utf với công cụ chuyển mã của nó
TẤM NỆM NÀY QUÁ TỆ CẦN PHẢI THAY ĐỔI HỆ THỐNG SẢN XUẤT
Tấm nệm này quá tệ, cần phải thay đổi hệ thống sản xuất
TẤM NỆM NÀY QUà TỆ CẦN PHẢI THAY Äá»”I HỆ THá»NG SẢN XUẤT
Tấm nệm nà y quá tệ, cần phải thay đổi hệ thống sản xuất
Sau đó chuyển ngược, chuyển xuôi đều được nhưng Unikey thì thất bại. Điều đó làm em có suy đoán là bộ chuyển đổi hoặc ít ra thuật toán chuyển đổi có vấn đề, thêm nữa khi gõ bằng Unikey cũng bị tội như thế. Thành ra đó là căn nguyên. Em sẽ thử đọc đoạn code đó của bác Long và phân tích xem thế nào.
Khi lập bảng đầu vào cho công cụ chuyển mã, em thấy vụ này nên đã tự mình bổ sung thêm dấu cho mấy nguyên âm lỗi đó thì lại không bị sao.
Kính bác giải thích giùm cho em và mọi người! Còn về kỹ năng sử dụng bộ chuyển mã của Unikey thì em tin không có vấn đề gì vì em sử dụng nó từ 2002 đến giờ!
Liên kết công cụ ở đây để bạn Văn thử nhé.
http://www.sfdp.net/tai-lieu-khac/bocongcuchuyenma/Functions.rar
Sau khi nghiên cứu code chuyển đổi của bác Long, thực tế em thấy là Unikey đúng là không sai gì cả, các giả định trước đây về vấn đề của Unikey liên quan đến Utf-8 đều không đúng nhưng em phát hiện ra một điểm lý thú:
Nếu dùng bộ gõ Unikey chuyển sang bảng mã UTF-8 Literal, một số ký tự sẽ không hiển thị được.
Ví dụ khi gõ chữ Ệ thì trên màn hình soạn thảo hiển thị là "á»". Trên thực tế, đoạn ký tự này gồm 3 ký tự với mã ASCII lần lượt là 225, 187 và 134.
Điều đặc biệt ở đây là: Ký tự số 134 không hiển thị ra nhưng khi dùng hàm Char trong Excel để chuyển đổi sang mã ASCII thì nó là "†". Khó hiểu ở chỗ là một số phần mềm quản trị dữ liệu hiển thị được ký tự này thành hình thánh giá trong khi một số phần mềm soạn thảo lại không làm được thế!
Khi nghiên cứu thêm chút nữa về UTF-8 thì em phát hiện ra rằng có một số mã có kết hợp với các ký tự mở rộng trong bảng mã ASCII. Hiện tại em vẫn Không rõ tại sao các trình quản lý CSDL lại chuyển nó thành dấu hiển thị được như vậy trong dữ liệu?
Vậy là đã rõ, bộ gõ Unikey không có lỗi, chỉ có vấn đề là tại sao cùng ký tự đó, các bộ soạn thảo đều không hiển thị được.
Đấy cũng là điều lý giải tại sao, bộ chuyển mã của Unikey bị lỗi. Tất cả các ký tự không hiển thị được như thế nó không đọc được và dẫn đến chuyển mã sai. Ví dụ của bạ Văn là một trường hợp điển hình. Tất cả các đoạn có tình huống như trên thì Unikey chỉ chuyển đổi 2 ký tự đầu của mã UTF-8 trong khi ký tự cuối có mã 134 nó lại bỏ qua.
Vụ này kính nhờ bác Switom nghiên cứu giúp để khai sáng cho bọn em.