Một Thắc Mắc Với Font TCVN3 | Giải Pháp Excel

Giải Pháp Excel
  • Trang chủ Có gì mới Hoạt động gần nhất Tác giả
  • Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
  • Video New Video về Excel Video về tin học khác Tin tức về tin học chung
  • Thông tin mới Featured content Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
  • Tài nguyên Đánh giá mới nhất Tìm tài nguyên
  • Facebook
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

Tìm kiếm

Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Note Bởi: Tìm kiếm Tìm nâng cao…
  • Tìm bài viết mới
  • Tìm theo chuyên mục
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
  • Trang chủ
  • Diễn đàn
  • Định dạng, trình bày, in ấn bảng tính
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Một thắc mắc với font TCVN3 (1 người xem)
  • Thread starter Thread starter ndu96081631
  • Ngày gửi Ngày gửi 29/10/09
Liên hệ QC

Người dùng đang xem chủ đề này

Đang trực tuyến: 2 (Thành viên: 0, Khách: 2) ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,982 Tôi có 1 thắc mắc mà không biết đưa bài vào box này có hợp lý không... Nếu không đúng xin nhờ Mod chuyển bài giúp (tuy nhiên câu hỏi cũng có liên quan 1 chút đến định dang) -------------------------- Theo như tôi biết thì font TCVN3 là font 1 byte, bao gồm 256 ký tự, vì thế mà không đủ "chổ chứa" cho cả chữ thưởng và chữ HOA Vì lẽ đó người ta phải phân ra thành 2 file font, 1 file chữ thường và 1 file chữ HOA Với font Unicode hoặc VNI, khi ta muốn gõ chữ HOA, đơn giản chỉ cần bấm phím Shift (hoặc Caps lock) Còn với font TCVN3, tôi có 1 thắc mắc thế này: Không biết trong quá trình soạn thảo văn bản bằng font TCVN3, khi các bạn muốn chuyển chử thường sang chữ HOA hoặc ngược lại thì các bạn làm thế nào nhỉ? ---> Chẳng lẽ phải đổi font sao? ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Chữ hoa thì cũng nhấn Shift ndu à, kể cả nguyên âm không dấu và phụ âm bao gồm cả Đ. Chỉ những nguyên âm hoa có dấu mới phải đổi font thôi. Lần chỉnh sửa cuối: 29/10/09 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,982
ptm0412 đã viết: Chữ hoa thì cũng nhấn Shift ndu à, kể cả nguyên âm không dấu và phụ âm bao gồm cả Đ. Chỉ những nguyên âm hoa có dấu mới phải đổi font thôi. Nhấp chuột vào đây để mở rộng...
Ví dụ em gõ chữ PHẠM THẾ MỸ thì phải đổi font, có phải không sư phụ? (khó khăn quá nhỉ) ---> Vậy hóa ra trong quá trình soạn thảo người ta phải đổi font liên tục sao trời? ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Phạm Thành Mỹ thì không cần đổi font, nhưng PHẠM THÀNH MỸ thì phải đổi font. Đường Đặng văn Ngữ thì không cần đổii font, nhưng Đường ĐẶNG VĂN NGỮ thì phải đổi font cho riêng cái tên in hoa. Đây là điều tệ hại lớn nhất làm cho cá nhân tôi ghét font ABC đến thế. ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Nói thêm, Font ABC còn 1 nhược điểm mà font Unicode cũng bị, là dùng hàm UPPER() của Excel, không chuyển được các chữ có dấu: - Nguyên âm có dấu của ABC bị biến dạng khi dùng UPPER(), hết đọc được luôn. - nguyên âm có dấu của Unicode còn nguyên chữ thường nhưng còn đọc được. Trong khi đó font Vni-xxx thì xài UPPER ngon lành. Hình như nguyên nhân là Excel cộng thêm 1 tham số vào character code của chữ thường để chuyển thành chữ in. Font ABC và Unicode không theo quy luật đó nên sai, Font Vni-xxx theo quy luật nên đúng. hai2hai

hai2hai

VNUNi®
Thành viên danh dự Tham gia 14/6/06 Bài viết 1,137 Được thích 2,297 Nghề nghiệp Tư vấn giải pháp bán lẻ Đương nhiên là phải đổi font đối với các ký tự có dấu mà hiển thị đủ trong 1 byte. Cái này cần gì phải nghĩ nhỉ. Định nghĩa font 1 byte là thế mà. Cũng với lý do trên, hàm Upper hiển nhiên là ko đổi ứ thành Ứ được rồi. Người ta gọi là font hỗ trợ TCVN3 chứ ko gọi là font ABC (Ví du font VK Sans Serif là font theo chuẩn TCVN3 nhưng ko đi kèm với bộ gõ ABC mà với bộ gõ VietKey), chỉ có bộ gõ ABC của Quách Tuấn Ngọc thôi và các font .vnXXX đi kèm theo là do bác QTN tạo ra, nhưng dùng chuẩn từ thì ko gọi là font ABC. Cần phải phân biệt và dùng chính xác từ của Fonts, Bảng mã, Kiểu gõ, và Bộ gõ (phần mềm) OverAC

OverAC

Đỗ Nguyên Bình
Thành viên BQT Administrator Tham gia 30/5/06 Bài viết 2,699 Được thích 15,155
hai2hai đã viết: Đương nhiên là phải đổi font đối với các ký tự có dấu mà hiển thị đủ trong 1 byte. Cái này cần gì phải nghĩ nhỉ. Định nghĩa font 1 byte là thế mà. Nhấp chuột vào đây để mở rộng...
Cái này chắc anh Hải nói theo quan điểm của người từng quen với font ABC (Hình như là cả khu vực miền Bắc quen với loại font này, trong Nam chẳng ai sài) nên mới nói thế. Chứ thời chưa có font 2 byte trong Nam sài font VNI 1byte và 2 ký tự cho những chữ có dấu, mọi thứ có thể dùng upper lower (Excel) và change case (word) bình thường. Và trong Nam chuyện đổi font cho việc đổi case của font ABC là chuyện quái dị. hai2hai

hai2hai

VNUNi®
Thành viên danh dự Tham gia 14/6/06 Bài viết 1,137 Được thích 2,297 Nghề nghiệp Tư vấn giải pháp bán lẻ
Định nghĩa font 1 byte là thế mà. Nhấp chuột vào đây để mở rộng...
Đọc thật kỹ, tôi viết ở trên là font 1 byte (tên bảng mã là gì cũng được nhưng người ta gọi là font 1 byte) chứ ko phải là font 2 bytes. Và với fonts 1 byte thì phải thế. Mình ko nói theo quan điểm "font ABC" (vừa ở trên mình nói là ko nên nói "fonts ABC" rồi mà) mà mình nói theo KHOA HỌC. Đã là font hỗ trợ TCVN3 tức là font 1 byte. Mà font 1 byte tức là sẽ có 1 số ký tự ko lên chữ hoa được vì phần chữ thì nằm ở byte 1, phần dấu nằm ở byte thứ 2. Và vì thế ko có cách nào khác ngoài cách đổi sang Font H. Tôi ko bao giờ có khái niệm nói theo "quan điểm" vùng miền hay thói quen gì đâu nhé, tôi nói là dựa trên nguyên lý của ... IT, của CNTT, của kỹ thuật, của Logic, của byte, của bit, của câu hỏi tác giả, của v.v... :-= Ở đây bác Tuấn hỏi về điều rất cụ thể là font TCVN3 (tức font hỗ trợ bảng mã TCVN3 - nói thế mới chính xác). Chứ bác Tuấn ko hỏi về fonts hỗ trợ VNI Windows, Unicode hay bảng mã khác. 15 năm trước kia hai2hai cũng phân biệt được sự khác biệt TCVN3 là 1 byte và VNI Windows là 2 bytes rồi, và chuyện "phía nam" thì sài VNI, còn phía bắc (đầu não cơ quan chính trị) thì sài TCVN3 vì người phát triển ở gần trung tâm đầu não nên các cụ quyết định cái đó mới là chính thức trong các CQ nhà nước. Sau này thì thay đổi sang bảng mã là UNICODE (hồi đầu còn tranh cãi nhau mãi chuyện "dựng sẵn" hay "tổ hợp" nữa cơ) nhưng các cụ đã quen rồi, hàng triệu văn bản của các cơ quan nhà nước trước kia đã TCVN3 cả rồi Còn nhiều thứ quái dị hơn nhiều. Ví dụ gọi 1 tá = 10 cái :P Lần chỉnh sửa cuối: 29/10/09 paulsteigel

paulsteigel

Nhi bất hoặc!
Tham gia 25/8/08 Bài viết 306 Được thích 684 Giới tính Nam Nghề nghiệp Governance & Public policy consultant Hừ hừ, thấy hay, cho phép em lạm bàn tẹo! Thật ra thì ai cũng đúng cả nhưng mà iem lại thấy đúng là vì sự quen dùng còn nếu theo đúng khoa học thì có nhẽ phải xem lại nhé! VNI là 2 bytes đúng vì cần 2 bytes để lưu trữ một ký tự đại diện nguyên âm của tiếng Việt nhưng đó chỉ là sự ghép cơ học có nguyên tắc tương đối khoa học một chút thôi ví dụ: aù = á aø = à aû = ả aõ = ã aï = ạ AÙ = Á AØ = À AÛ = Ả AÕ = Ã AÏ = Ạ Còn để hiển thị ra chữ dạng tiếng Việt thì nó viện ra bộ phông VNI, một số bảng mã khác như BK hcm .... rồi viqr cũng đều cùng nhóm đó. Trước đây tôi có tham gia nhóm vẽ graph vector cho một số phông chữ nôm và bản thân thì cũng đã từng vọc vạch thiết kế lại biểu tượng của Standard Chartered Bank vào mã của chữ hiển thị dấu đồng Euro đối với phông .Vntime cho tiện sử dụng trong bộ chứng từ của cơ quan. Ngoài ra cũng sửa nhiều ký tự khác nữa. Thực ra thì phông chữ giống như một thứ lăng kính và ta thích nó hiển thị thành chữ gì thì đi sửa phông chữ là được! (tất nhiên là xin nói theo góc độ nông dân một tẹo để cho dễ hiểu thui ạ). (Thêm chút, tại sao khi dùng ucase của vni lại ngon trong khi tcvn lại không cho kết quả ngon là vì cách thiết kế bộ mã của vni khá khoa học đấy, trong khi tcvn3 thì nó không có đủ chỗ để chứa hết 134 mã nguyên âm của tiếng việt vì thế một số nguyên âm có dấu chữ hoa không tồn tại bên cạnh việc sự hạn chế của 256 ký tự không cho phép đặt nguyên âm vào đúng vị trí để hàm ucase, lcase chạy đúng). Xin có thiển ý như thế, có gì iem xin viết tiếp sau bữa cơm ạ. Có lẽ đây là bài viết tương đối rõ về bộ ký tự và phông chữ để các bạn tham khảo http://www.microsoft.com/typography/unicode/cs.htm Kèm theo bài là bản sửa đổi phông .VnTime đã được đổi tên font thành Test font và ký tự mã 49 (số 1) được đổi thành chữ GPE. (Các bạn tải file này về, giải nén và bỏ file ttf vô thư mục C:\windows\fonts, bật Excel lên gõ số 1 và đổi phông sang Test font)

File đính kèm

  • TEST.rar TEST.rar 27.2 KB · Đọc: 48
Lần chỉnh sửa cuối: 29/10/09 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,982 Quả thật từ trước đến giờ vẫn xài font nhưng còn lờ mờ về vấn đề 1 byte, 2 byte này lắm (mà tin chắc vẫn còn rất nhiều người lờ mờ như tôi) Tình cờ mấy hôm nay nghiên cứu về font và có 1 vài phát hiện khiến cho mình võ ra được nhiều thứ ---> Nhất là khi được nghe ý kiến của các cao thủ (lại càng cảm thấy mình thật NGU) Cảm ơn tất cả mọi người đã quan tâm đến topic này ---> Mong có 1 ngày khi nghiên cứu về font, ngu chổ nào nữa lại nhờ các cao thủ giúp tiếp Chân thành cảm ơn! hai2hai

hai2hai

VNUNi®
Thành viên danh dự Tham gia 14/6/06 Bài viết 1,137 Được thích 2,297 Nghề nghiệp Tư vấn giải pháp bán lẻ Mọi người có thể dùng FontCreator mà sửa font theo ý muốn. Copy từ font này sang font kia rất dễ ràng. ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Sẵn nói thêm 1 tí: - Cái hình dạng ký tự thể hiện lên màn hình, đó là font - Cùng 1 ký tự nhưng mang code bao nhiêu, đó là bảng mã (TCVN3, Unicode, VNI For Win, ...). Thí dụ ký tự Ø trong bảng mã Unicode là 216, bảng mã VNI là 222, trong bảng mã TCVN3 không có. - Làm thế nào để gõ bàn phím ra ký tự không có trên bàn phím, là kiểu gõ(Telex, VNI) - Phần mềm hỗ trợ các kiểu gõ, là tạo ra bộ gõ. 1. Nói về Bảng mã: - Bảng mã 1 byte, là bảng mã 256 ký tự: 1 byte = 8 bit, 2^8 = 256 Thuộc loại 1 byte là bảng mã TCVN3, bảng mã VNI For Win, ... - Bảng mã 2 byte, là bảng mã 65536 ký tự: 2 byte = 16 bit, 2^16 = 65536 Thuộc loại 2 byte là bảng mã Unicode 2. Nói về tính chất bảng mã: - Bảng mã Unicode dùng 16 bit để thể hiện 1 ký tự bất kỳ, Len ("a") = Len("ầ") = 1 - Bảng mã TCVN3 dùng 8 bit để thể hiện 1 ký tự kể cả ký tự có dấu. Vì thế 256 ký tự không đủ liệt kê hết mọi ký tự, và phải đổi Font cho chữ hoa. Khi dùng font chữ hoa, không cần nhấn Shift và không cần nhấn Capslock. - Bảng mã VNI dùng 1 byte (8 bit) để thể hiện 1 ký tự không dấu, và dùng 2 byte, mỗi byte 8 bit để thể hiện 2 ký tự cho các chữ cái có dấu: 1 byte cho ký tự không dấu và 1 byte cho bản thân cái dấu. Cho nên Len("a") =1 nhưng Len("à") = 2 3. Nói về Upper của Excel: Hàm Upper của Excel tương đương với: Upper(<kytu>) = Char(Code(<Kytu>)-32) - Bảng mã TCVN3 chữ thường không có chữ nguyên âm có dấu in hoa, nên trong cùng font chữ thường, Code(<Kytu>) - 32 không ra ký tự mong muốn là chữ hoa của(<kytu>) - Bảng mã Unicode: Rất nhiều các ký tự chữ nguyên âm có dấu mang số hiệu (AscW) lớn hơn 256, khi dùng hàm code thì sẽ ra 63. nghĩa là rất nhiều ký tự có code 63. Mà Excel tính hàm Code gặp 63 là để nguyên. - Bảng mã VNI: Do dùng 2 ký tự để thể hiện 1 chữ nguyên âm có dấu, nên Upper(<kytu>) là Upper 2 ký tự: 1 ký tự chữ và 1 ký tự dấu. Kết quả là 1 chữ hoa không dấu và 1 dấu giống y vậy mà nằm cao hơn. Người viết ra bảng mã VNI đã áp dụng đúng nguyên tắc trừ 32 để cho chữ hoa có code là code của chữ thường trừ 32, và, code của dấu cao bằng code của dấu thấp trừ 32. Hậu quả xấu của việc dùng 2 ký tự cho 1 chữ nguyên âm có dấu của VNI: Khi đánh chữ hoa có dấu đầu câu thường bị tình trạng chữ thì cao, dấu thì thấp đè lên chữ. Thí dụ Ông, Ống, Ân, Ẩn, ... Đó là do Word, Excel, ... tự động sửa lỗi typing: AutoCorrect: Correct TWo INitial CApitals nghĩa là hễ thấy 2 ký tự hoa đi chung với những ký tự thường thì lower bớt 1. Mà dấu của chữ hoa, là 1 ký tự hoa! Lower xuống thì nó nằm dưới thấp đè lên chữ! Chỉ cần bỏ chọn mục này trong AutoCorrect trong Word là OK cho cả Word lẫn Excel. File kèm theo minh họa hiệu số char code của cả dấu và chữ cái thường và in, font VNI thì luôn bằng 32, font Unicode thì lung tung, rất nhiều hiệu bằng không. Font TCVN3 thì chẳng có cùng lúc Upper và lower để mà tính hiệu.

File đính kèm

  • MinhhoaFontUpper.xls MinhhoaFontUpper.xls 53 KB · Đọc: 25
Lần chỉnh sửa cuối: 5/11/09 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Tiếp theo: 4. Nói về kiểu gõ: - Kiểu gõ Telex là kiểu gõ dùng những chữ cái không dùng trong tiếng Việt như j, f, w, hoặc dùng ứng dụng quy luật tiếng Việt (không có aa, ee, dd ..., không có s giữa từ hoặc cuối từ) để tạo sự khác biệt khi gõ chữ có dấu. - Kiểu gõ VNI là dùng các phím số từ 1 đến 9 để thêm dấu thanh, dấu mũ và dấu gạch ngang của đ. 5. Nói về bộ gõ: Các phần mềm tạo bộ gõ đều phải sử dụng bộ nhớ clipboard. Khi ta gõ 1 phát vào bàn phím, ký tự đó được lưu lại trong bộ nhớ clipboard. Khi ta gõ phát thứ 2 và thứ 3, PM phải nối 2 hoặc 3 ký tự đó lại, so sánh với 1 list những nhóm ký tự đã định nghĩa: Thí dụ: - nếu aa hoặc a6 thì xoá ký tự a thứ nhất trên màn hình và thay bằng ký tự â trong bảng mã tương ứng. - nếu aas hoặc a61 thì xoá ký tự â trên màn hình và thay bằng ký tự ấ. - ... Hệ quả: Sử dụng bộ nhớ clipboard và cho hiện lên màn hình, đối với hệ điều hành thì tương tự như là copy/ cut và paste. Nên trong Word ta thường bị lỗi ký tự có dấu bị cách rời ra 1 khoảng trắng, Vì trong option của word có 1 chọn lựa Smart cut and paste, trong đó có mục con là Adjust sentense and word spacing Automatically. Nghĩa là khi paste văn bản từ clipboard vào, gặp 1 ký tự có dấu, Word cho rằng đó là ký tự đầu từ hoặc đầu câu, và tách ra khỏi phần trước của từ thí dụ như "h ệ th ống" Ai bị lỗi này vào Option của Word sửa lại, bỏ dấu check trong mục Adjust sentense and word spacing Automatically là OK Lần chỉnh sửa cuối: 3/11/09 OverAC

OverAC

Đỗ Nguyên Bình
Thành viên BQT Administrator Tham gia 30/5/06 Bài viết 2,699 Được thích 15,155
ptm0412 đã viết: Các phần mềm tạo bộ gõ đều phải sử dụng bộ nhớ clipboard. Nhấp chuột vào đây để mở rộng...
Chổ này cần bổ sung một tí. Không phải tất cả các phần mềm bộ gõ đều dùng Clipboard. Unikey có tùy chọn nếu bạn dùng clipboard hay không. Và mặc định là không. Thế nên dùng Unikey ít phải suy nghĩ hơn một số phần mềm bộ gõ khác. DOSNET

DOSNET

Thành viên gắn bó
Thành viên danh dự Tham gia 3/8/07 Bài viết 1,633 Được thích 2,370 Nghề nghiệp E&A
hai2hai đã viết: Mọi người có thể dùng FontCreator mà sửa font theo ý muốn. Copy từ font này sang font kia rất dễ ràng. Nhấp chuột vào đây để mở rộng...
Đã dùng thử FontCreator nhưng bản Home Edition có giá $79.00(US) và Professional Edition giá $199.00(US). Có soft nào free không bác? ---------- Hôm nay mới phát hiện ra bác sai chính tả.:-= ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
Chổ này cần bổ sung một tí. Không phải tất cả các phần mềm bộ gõ đều dùng Clipboard. Unikey có tùy chọn nếu bạn dùng clipboard hay không. Nhấp chuột vào đây để mở rộng...
Riêng chỗ này mình cũng chưa hiểu, nếu không dùng clipboard thì Unikey lấy từ đâu ký tự trước đó và ký tự vừa đánh để ghép lại, và để so sánh với những nhóm ký tự đã định nghĩa? Lần chỉnh sửa cuối: 5/11/09 OverAC

OverAC

Đỗ Nguyên Bình
Thành viên BQT Administrator Tham gia 30/5/06 Bài viết 2,699 Được thích 15,155
ptm0412 đã viết: Riêng chỗ này mình cũng chưa hiểu, nếu không dùng clipboard thì Unikey dùng cái gì để ghép nối lại ký tự trước đó và ký tự vừa đánh, để so sánh với những nhóm ký tự đã định nghĩa? Nhấp chuột vào đây để mở rộng...
Cái này thì em không biết. Nhưng em nghĩ Unikey hoàn toàn có thể đòi hỏi windows cấp phát cho mình một ô nhớ nào đó trong Ram (hoặc ổ cứng) để lưu chứ đâu nhất thiết phải phụ thuộc vào Clipboard. P

phamduylong

-
Thành viên đã mất Tham gia 30/12/06 Bài viết 918 Được thích 2,372 Nghề nghiệp Giáo viên Tôi cũng đã tìm hiểu về font để viết các hàm chuyển mã và đã rút ra vài vấn đề về về font: - Nguyên âm, phụ âm latin có 26 chữ cái. - Nguyên âm, phụ âm tiếng Việt kể cả latin (a, ă, â, b, c, d, đ, ... , w, x, y, z) đến 33 chữ cái trong đó có 12 nguyên âm (a, ă, â, e, ê, i, o, ô, ơ, u, ư, y) và 21 phụ âm (b, c, đ, f, ..., w, x, z). Mỗi nguyên âm kèm thêm 5 dấu thanh nên bảng mã tiếng Việt : 21 phụ âm + 12 nguyên âm + (12 nguyên âm * 5 dấu thanh) = 21+12+60=93 ký tự. Chữ hoa và chữ thường thành 93*2=186 ký tự. Nếu bỏ đi các chữ cái thuần latin thì còn 186-26*2=186-52=134 - ASCII dành chỗ cho 126 ký tự đầu (1>126) cho các phím điều khiển, chữ số, chữ cái latin hoa thường, các ký tự khác trên bàn phím, còn lại 255-126=129 1. Hàm PROPER : (như ptm0412 đã viết). Chỉ đơn giản là - 32 cho mã để thành chữ hoa. Điều này không đúng với các bảng mã tiếng Việt 1 byte và Unicode. 2. Tại sao bảng mã 2 byte tiếng Việt (VNI Windows) thì hàm PROPER đúng còn bảng mã 1 byle (TCVN3 ABC) thì sai ? - Bảng mã 2 byte kết hợp 2 ký tự (1 ký tự nguyên âm và 1 ký tự dấu thanh). Vừa dấu thanh chữ hoa, chữ thường chỉ cần 6*2=12 ký tự dấu thanh nên đủ chổ trong ASCII Ví dụ : ấ gồm ký tự a (97) và dấu ^ / (225), dùng hàm PROPER thì thành Ấ gồm ký tự A (97-32=65) và dấu ^ / (1225-32=93) - Bảng mã 1 byte (TCVN3 - ABC) vì 1 ký tự không dấu, có dấu độc lập nên không đủ chỗ trong ASCII (cần đến 134 ký tự trong khi ASCII chỉ còn 129 ký tự) 3. Tại sao Unicode không sắp xếp tiếng Việt tiếng Việt vào 1 khu vực nào đó theo nguyên tắc ±32 để dùng đúng với hàm PROPER ? Tôi có đọc 1 tài liệu giải thích vấn đề này (giờ không nhớ nguồn ở đâu) như sau : do bảng mã Unicode là bảng mã đa ngôn ngữ, nên có một số ký tự được nhiều ngôn ngữ dùng chung (ví dụ é là ký tự chung của Việt, Pháp, ...) nên nếu đúng với ngôn ngữ này thì sai với ngôn ngữ nọ. Nên Unicode là như vậy. Còn việc phát triển, xử lý như thế nào là tùy từng quốc gia, từng ngôn ngữ. Đây là nhận xét cá nhân, có thể còn nhiều điều không đúng. các bạn góp ý thêm ! Lần chỉnh sửa cuối: 3/11/09 M

muontennguoikhac

Thành viên chính thức
Tham gia 11/1/08 Bài viết 72 Được thích 54
phamduylong đã viết: 2. Tại sao bảng mã 2 byte tiếng Việt (VNI Windows) thì hàm PROPER đúng còn bảng mã 1 byle (TCVN3 ABC) thì sai ? - Bảng mã 2 byte kết hợp 2 ký tự (1 ký tự nguyên âm và 1 ký tự dấu thanh). Vừa dấu thanh chữ hoa, chữ thường chỉ cần 6*2=12 ký tự dấu thanh nên đủ chổ trong ASCII Ví dụ : ấ gồm ký tự a (97) và dấu ^ / (225), dùng hàm PROPER thì thành Ấ gồm ký tự A (97-32=65) và dấu ^ / (225-32=193) ...... Nhấp chuột vào đây để mở rộng...
Theo tôi thì ngay cả VNI cũng không đúng. Bởi vì dấu ^/ của chữ ấ (thường) thì có vị trí thấp hơn dấu ^/ của chữ Ấ (hoa) cho nên PROPER sẽ cho chữ Ấ rất kỳ: chữ A (hoa) nhưng dấu ^/ thì nằm thấp, dính vào chữ A. Nhưng nếu gõ vào từ bàn phím thì bộ gõ sẽ xử lý để cho ra chữ Ấ đúng. Như vậy hàm PROPER chỉ xử lý những ký tự là chữ cái latin mà thôi. Nên khi:ấ gồm ký tự a (97) và dấu ^ / (225), dùng hàm PROPER thì thành Ấ gồm ký tự A (97-32=65) và dấu ^ / (225) P

phamduylong

-
Thành viên đã mất Tham gia 30/12/06 Bài viết 918 Được thích 2,372 Nghề nghiệp Giáo viên
muontennguoikhac đã viết: Theo tôi thì ngay cả VNI cũng không đúng. Bởi vì dấu ^/ của chữ ấ (thường) thì có vị trí thấp hơn dấu ^/ của chữ Ấ (hoa) cho nên PROPER sẽ cho chữ Ấ rất kỳ: chữ A (hoa) nhưng dấu ^/ thì nằm thấp, dính vào chữ A. Nhấp chuột vào đây để mở rộng...
Dùng hàm PROPER cho VNI bị lỗi như trên khi nguyên âm có dấu mũ, dấu thanh nằm ở đầu từ (án, ếch, ...). Do hàm PROPER chuyển các ký tự đầu từ thành chữ hoa, các ký tự cón lại thành chữ thường. Còn font VNI là 2 byte, á có 2 ký tự là a và dấu sắc. PROPER chì chuyển ký tự đầu là a thành A, còn dấu sắc không chuyển nên nhìn nó hơi kỳ kỳ. M

muontennguoikhac

Thành viên chính thức
Tham gia 11/1/08 Bài viết 72 Được thích 54
phamduylong đã viết: Dùng hàm PROPER cho VNI bị lỗi như trên khi nguyên âm có dấu mũ, dấu thanh nằm ở đầu từ (án, ếch, ...). Do hàm PROPER chuyển các ký tự đầu từ thành chữ hoa, các ký tự cón lại thành chữ thường. Còn font VNI là 2 byte, á có 2 ký tự là a và dấu sắc. PROPER chì chuyển ký tự đầu là a thành A, còn dấu sắc không chuyển nên nhìn nó hơi kỳ kỳ. Nhấp chuột vào đây để mở rộng...
Vì thế, trong Window khi dùng Unicode ta nên dùng bảng mã Vietnamese Locale CP 1258. Hình như chỉ bộ gõ Unikey mới có. Đối với VNI, khi thì chữ cái là 1 byte, lúc lại là 2 byte nên khó tương thích với các ứng dụng. ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,603 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
Dùng hàm PROPER cho VNI bị lỗi như trên khi nguyên âm có dấu mũ, dấu thanh nằm ở đầu từ (án, ếch, ...). Do hàm PROPER chuyển các ký tự đầu từ thành chữ hoa, các ký tự cón lại thành chữ thường. Còn font VNI là 2 byte, á có 2 ký tự là a và dấu sắc. PROPER chì chuyển ký tự đầu là a thành A, còn dấu sắc không chuyển nên nhìn nó hơi kỳ kỳ. Nhấp chuột vào đây để mở rộng...
Theo tôi thì ngay cả VNI cũng không đúng. Bởi vì dấu ^/ của chữ ấ (thường) thì có vị trí thấp hơn dấu ^/ của chữ Ấ (hoa) cho nên PROPER sẽ cho chữ Ấ rất kỳ: chữ A (hoa) nhưng dấu ^/ thì nằm thấp, dính vào chữ A. Nhấp chuột vào đây để mở rộng...
Như đã nói ở bài trên, đối với bảng mã VNI, hàm Upper() đúng hơn hàm Proper(), vì Upper() thực thi cho mọi ký tự:
- Bảng mã VNI: Do dùng 2 ký tự để thể hiện 1 chữ nguyên âm có dấu, nên Upper(<kytu>) là Upper 2 ký tự: 1 ký tự chữ và 1 ký tự dấu. Kết quả là 1 chữ hoa không dấu và 1 dấu giống y vậy mà nằm cao hơn. Nhấp chuột vào đây để mở rộng...
Lần chỉnh sửa cuối: 4/11/09 M

muontennguoikhac

Thành viên chính thức
Tham gia 11/1/08 Bài viết 72 Được thích 54
ptm0412 đã viết: Nói thêm, Font ABC còn 1 nhược điểm mà font Unicode cũng bị, là dùng hàm UPPER() của Excel, không chuyển được các chữ có dấu: - Nguyên âm có dấu của ABC bị biến dạng khi dùng UPPER(), hết đọc được luôn. - nguyên âm có dấu của Unicode còn nguyên chữ thường nhưng còn đọc được. Trong khi đó font Vni-xxx thì xài UPPER ngon lành. Hình như nguyên nhân là Excel cộng thêm 1 tham số vào character code của chữ thường để chuyển thành chữ in. Font ABC và Unicode không theo quy luật đó nên sai, Font Vni-xxx theo quy luật nên đúng. Nhấp chuột vào đây để mở rộng...
Nói về Unicode mà không phân biệt Unicode 1byte, 2byte, 3byte và 4byte, dựng sẵn và tổ hợp thì sẽ cho những sai sót đáng tiếc. Với 2 byte thì chỉ có thể có hơn 65 ngàn ký tự. Riêng cho tiếng Hoa thì nhiêu đó đâu có đủ. Mà chỉ riêng tiếng Hoa còn có tiếng phổ thông và địa phương. Rồi các nước khác nữa.
OverAC đã viết: Chổ này cần bổ sung một tí. Không phải tất cả các phần mềm bộ gõ đều dùng Clipboard. Unikey có tùy chọn nếu bạn dùng clipboard hay không. Và mặc định là không. Thế nên dùng Unikey ít phải suy nghĩ hơn một số phần mềm bộ gõ khác. Nhấp chuột vào đây để mở rộng...
ptm0412 đã viết: Riêng chỗ này mình cũng chưa hiểu, nếu không dùng clipboard thì Unikey lấy từ đâu ký tự trước đó và ký tự vừa đánh để ghép lại, và để so sánh với những nhóm ký tự đã định nghĩa? Nhấp chuột vào đây để mở rộng...
OverAC đã viết: Cái này thì em không biết. Nhưng em nghĩ Unikey hoàn toàn có thể đòi hỏi windows cấp phát cho mình một ô nhớ nào đó trong Ram (hoặc ổ cứng) để lưu chứ đâu nhất thiết phải phụ thuộc vào Clipboard. Nhấp chuột vào đây để mở rộng...
Hiển nhiên là thế. Viết VBA hẳn ta rất quen thuộc với "DIM xxx, yyy ..." và sử dụng các biến nhớ. Vì thế phát biểu của ptm0412 như vầy là sai:
ptm0412 đã viết: 5. Nói về bộ gõ: Các phần mềm tạo bộ gõ đều phải sử dụng bộ nhớ clipboard. Khi ta gõ 1 phát vào bàn phím, ký tự đó được lưu lại trong bộ nhớ clipboard. - ... Hệ quả: Sử dụng bộ nhớ clipboard và cho hiện lên màn hình, đối với hệ điều hành thì tương tự như là copy/ cut và paste. ... Nhấp chuột vào đây để mở rộng...
Chẳng có bộ gõ nào dùng clipboard rồi copy/ cut và paste. ...cả. "Unikey dùng clipboard" : nghĩa là nó sẽ chuyển mã khi clipboard đổ ra (khi bạn nhấn Ctrl+V) sang bảng mã đang dùng. Ví dụ bạn copy đoạn văn mã VNI rồi paste vào diễn đàn này thì Unikey có thể chuyển sang mã UTF-8 luôn cho bạn (nếu không, bạn post lên đây sẽ chẳng đọc được). Chỉ là cho tiện khi dùng tiện ích chuyển mã văn bản của Unikey mà thôi. Còn trả lời cho thắc mắc:
ptm0412 đã viết: Riêng chỗ này mình cũng chưa hiểu, nếu không dùng clipboard thì Unikey lấy từ đâu ký tự trước đó và ký tự vừa đánh để ghép lại, và để so sánh với những nhóm ký tự đã định nghĩa? Nhấp chuột vào đây để mở rộng...
thì câu trả lời là: đọc lại văn bản đang gõ. Ngay trong Excel chứ chẳng xa xôi đâu ta cũng có thể tìm hiểu vấn đề bằng cách dùng textbox hoặc RefEdit cùng với các properties: SelLenght, SelStart, SelText và các event: keydown, keyup ...
phamduylong đã viết: 3. Tại sao Unicode không sắp xếp tiếng Việt tiếng Việt vào 1 khu vực nào đó theo nguyên tắc ±32 để dùng đúng với hàm PROPER ? Tôi có đọc 1 tài liệu giải thích vấn đề này (giờ không nhớ nguồn ở đâu) như sau : do bảng mã Unicode là bảng mã đa ngôn ngữ, nên có một số ký tự được nhiều ngôn ngữ dùng chung (ví dụ é là ký tự chung của Việt, Pháp, ...) nên nếu đúng với ngôn ngữ này thì sai với ngôn ngữ nọ. Nên Unicode là như vậy. Còn việc phát triển, xử lý như thế nào là tùy từng quốc gia, từng ngôn ngữ. Đây là nhận xét cá nhân, có thể còn nhiều điều không đúng. các bạn góp ý thêm ! Nhấp chuột vào đây để mở rộng...
Mặc dù ngay khi mới thành lập, tổ chức Unicode cũng đã có người gốc Việt tham gia, nhưng vì lực không mạnh nên không thể xí phần ngon được. Ta không thể đòi lấy mã theo quy tắc ±32 để dùng đúng cho tiếng Việt. Tuy nhiên đó cũng không phải là giải pháp. Bởi vì: - Nếu ta xí phần ngon thì các nước khác sẽ như thế nào? Chắc là họ sẽ tìm giải pháp cho họ thôi. Mà nếu họ tìm được giải pháp cho họ thì sao VN ta trong tình huống khó như họ lại không tìm được? Mà giành nhau chỗ ngon, tức nhau tiếng gáy không phải là thói quen của các nhà khoa học. Dẫu sao đi nữa thì cũng đã có giải pháp Unicode tổ hợp. Khi đó người nước nào thì tích vào tổ hợp bảng mã của mình, loại bỏ phần tổ hợp của nước khác ra. Khi đó nước nào cũng có phần ngon cả (tất nhiên chỉ đúng trên máy có cài đúng tổ hợp đó thôi). Nếu trong môi trường Window mà dùng bảng mã Vietnamese Locale CP 1258 là bảng mã Unicode tổ hợp được Window hổ trợ thì dù đó cũng là 2 byte như VNI nhưng nó lại được Window hiểu rõ ràng hơn cả dùng VNI bởi vì VNI thực ra là 1byte+1byte mà cái byte sau (chứa dấu) bị đẩy lui vị trí pixel bắt đầu ra phía trước. Chính vì thế khi dùng VNI thì hàm PROPER lại tưởng byte sau là ký tự khác. Nếu sử dụng Vietnamese Locale CP 1258 thì bạn có thể gõ vào Excel, thực hiện trên VBA dễ dàng: trên msgbox, trên thanh tiêu đề cửa sổ msgbox, trên form, trên khung properties, trên cửa sổ soạn thảo VBA .... và dĩ nhiên cả với hàm PROPER, UPPER và 1 số hàm khác .... Tất nhiên nó cũng có những bất tiện của nó... Lần chỉnh sửa cuối: 7/11/09 N

nguyenmanhnam

Thành viên tiêu biểu
Tham gia 24/7/10 Bài viết 434 Được thích 266 Híc, hôm nay đọc đến phần này quả thực bản thân em mới thấy mình chẳng hiểu gì về các khái niệm này cả, trước đây chỉ quen ứng dụng theo kiểu trâu bò thôi. Tuy nhiên, em cũng phần nào lờ mờ đoán được tại sao (dù chỉ là suy luận chưa được chắc chắn lắm) là tại sao một số trường hợp mình dùng Unicode để đánh trong một số trường hợp mà nó lại không hiển thị Tiếng Việt như: Khi tra từ điển Việt - Anh, tạo tiêu đề cho book CHM..., Xin các thày có thể chỉ bảo giúp em hiểu thêm tại sao không thể dùng bộ gõ Unicode để gõ tiêu đều cho sách CHM mà lại tự nhiên cứ "phức tạp vấn đề" là phải dùng đến bảng mã Vietnamese Local CP 1258 với ah? Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.

Bài viết mới nhất

ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba (1 người xem)
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
5 6 7 Trả lời 632 Đọc 94K 21 phút trước tuanktt3 T A File Excel kiểm phiếu bầu cử Quốc hội và HĐND các cấp (2 người xem)
    • Thích
  • adua29
  • 9/4/21
  • Excel Ứng Dụng
Trả lời 18 Đọc 5K Hôm nay lúc 17:33 ongke0711 ongke0711 E
  • Question Question
VBA code tô màu ô excel theo điều kiện so sánh (1 người xem)
  • eagle12
  • Hôm nay lúc 09:42
  • Lập Trình với Excel
Trả lời 1 Đọc 36 Hôm nay lúc 17:26 HUONGHCKT H B Phần mềm quản lý bán hàng trên excel offline (1 người xem)
  • buihoanganhminh
  • Hôm nay lúc 14:09
  • Hàm và công thức Excel
Trả lời 0 Đọc 36 Hôm nay lúc 14:09 buihoanganhminh B Nguyễn Duy Tuân [New] BSAC v3.0 bộ công cụ lập trình phần mềm chuyên nghiệp trong VBA (1 người xem)
    • Thích
  • Nguyễn Duy Tuân
  • 24/9/20
  • BLUESOFTS: A-Excel, A-Tools
Trả lời 14 Đọc 4K Hôm nay lúc 10:14 Nguyễn Duy Tuân Nguyễn Duy Tuân T Sử dụng Google Sheets để tạo webapp nhận báo giá online (1 người xem)
    • Cảm ơn
  • thuctien
  • 15/2/26
  • Google Sheets
Trả lời 1 Đọc 225 Hôm nay lúc 10:13 hotboykute H Nguyễn Duy Tuân
  • Dán lên cao
Phiên bản mới Add-in A-Tools AI v10 (2024) (1 người xem)
    • Thích
  • Nguyễn Duy Tuân
  • 13/9/24
  • BLUESOFTS: A-Excel, A-Tools
Trả lời 66 Đọc 13K Hôm nay lúc 09:40 Nguyễn Duy Tuân Nguyễn Duy Tuân V Một Excel add-in vibe coding (1 người xem)
    • Thích
  • vietdang170
  • 28/1/26
  • Các Add-ins cho excel
Trả lời 21 Đọc 940 Hôm nay lúc 08:12 Gà Công Nghệ Gà Công Nghệ H Chào cả nha! Xin tư vấn về câu chuyện quản lý nhân sự
    • Cười
  • hotboykute
  • Chủ nhật lúc 14:42
  • Những vấn đề chung
Trả lời 11 Đọc 201 Hôm qua, lúc 17:42 HUONGHCKT H A
  • Question Question
Nhờ sửa câu lệnh AutoFilter
  • AnhThu-1976
  • Hôm qua, lúc 12:13
  • Lập Trình với Excel
Trả lời 1 Đọc 51 Hôm qua, lúc 12:22 LOGANWover L A
  • Question Question
Code nối các ghi chú với nhau theo điều kiện
  • AnhThu-1976
  • Chủ nhật lúc 11:35
  • Lập Trình với Excel
Trả lời 2 Đọc 101 Chủ nhật lúc 18:10 HUONGHCKT H SA_DQ Copilot bình luận các ván cờ vua từng ngày. (1 người xem)
    • Thích
  • SA_DQ
  • 3/11/25
  • Chia sẻ
Trả lời 79 Đọc 3K Chủ nhật lúc 14:23 SA_DQ SA_DQ cadafi Hướng dẫn tạo Macro chuyển số thành chữ trong Open Office 3.1 (Tiếng Việt Unicode)
  • cadafi
  • 5/6/09
  • Những phần mềm bảng tính
Trả lời 15 Đọc 26K Thứ bảy lúc 20:46 hng1635 H N Tạo COM Add-In bằng Visual C++
    • Thích
  • nguyendang95
  • 6/7/25
  • Excel và các ngôn ngữ lập trình khác
Trả lời 19 Đọc 2K Thứ sáu lúc 20:45 nguyendang95 N SA_DQ Công thức này có gì thú vị:
  • SA_DQ
  • Thứ sáu lúc 04:54
  • Làm việc với ngày tháng và thời gian
Trả lời 1 Đọc 122 Thứ sáu lúc 11:46 ptm0412 ptm0412 H Hướng dẫn tạo Nút bấm sắp xếp họ tên tiếng Việt trong LibreOffice Calc
    • Thích
  • hng1635
  • Thứ năm lúc 23:57
  • Những phần mềm bảng tính
Trả lời 0 Đọc 82 Thứ năm lúc 23:57 hng1635 H phuongnam366377 VNFastSearch – DLL tìm kiếm tiếng Việt tốc độ cao cho Excel VBA
  • phuongnam366377
  • 31/1/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 5 Đọc 493 Thứ năm lúc 10:37 phuongnam366377 phuongnam366377 M Bảo mật code VBA autocad!
  • Michael Bit
  • 9/2/26
  • Hỏi đáp những vấn đề khác
Trả lời 18 Đọc 642 Thứ tư lúc 13:11 Michael Bit M A
  • Question Question
Đã cách dòng, nhưng có Mã trùng lặp thì báo trùng
  • AnhThu-1976
  • 9/1/26
  • Lập Trình với Excel
Trả lời 14 Đọc 716 14/2/26 ptm0412 ptm0412 SA_DQ Các bạn hãy giúp mình tính tổng số ngày mà Bác Hồ sống trên nhân gian trên trang tính Excel
    • Thích
  • SA_DQ
  • 13/2/26
  • Làm việc với ngày tháng và thời gian
Trả lời 3 Đọc 257 13/2/26 SA_DQ SA_DQ Xem thêm… Chia sẻ: Facebook X Bluesky LinkedIn Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Thành viên có số lượng bài viết cao nhất tháng

  • HeSanbi 15
  • chothadiem 11
  • Michael Bit 9
  • SA_DQ 9
  • YêuCN 7
  • Gà Công Nghệ 6
  • HieuCD 5
  • HUONGHCKT 5
  • ongke0711 5
  • ptm0412 5
  • DeTong 4
  • Officexinh 4
  • hng1635 4
  • vietdang170 4
  • le_vis 3
  • chiendich 3
  • hoanglocphat 3
  • phuongnam366377 3
  • AnhThu-1976 3
  • LOGANWover 3

Thành viên có điểm tương tác cao nhất tháng

  • HeSanbi 19
  • SA_DQ 17
  • GPE-Trợ Lý 13
  • HUONGHCKT 9
  • Quang_Hải 7
  • HieuCD 6
  • DeTong 5
  • le_vis 5
  • LOGANWover 5
  • vietdang170 5
  • ongke0711 5
  • Gà Con yêu VBA 4
  • Phuocam 3
  • pycckuu410 3
  • chiendich 3
  • Hai Lúa Miền Tây 3
  • Michael Bit 3
  • hungvinh1402 2
  • YêuCN 2
  • Officexinh 2

Thời gian đếm ngược.

000 Ngày 00 Giờ 00 phút 00 giây Thân mời tham dự sự kiện sinh nhật GPE 2025
  • Trang chủ
  • Diễn đàn
  • Định dạng, trình bày, in ấn bảng tính
  • Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Back Top Bottom

Từ khóa » Bộ Mã Tcvn3 Dùng Bao Nhiêu Bit để Mã Hóa