Tiếng Việt không dấu gây không mấy thiện cảm cho người đọc, nội dung thường phải đoán chừng; chưa kể do đoán sai nội dung sẽ gây ra hậu quả khác biệt nào đó.
Ấy thế nhưng tiếng Việt không dấu vẫn có nhu cầu, thường do các phần mềm ứng dụng không hổ trợ Unicode, lại phải chuyển từ tiếng Việt Unicode trở về không dấu (ASCII). Cần phân biệt ASCII với 128 bit sẽ không có dấu hoàn toàn, trong khi ANSI 256 bit lại rãi rác vài ký tự có dấu.
Code chuyển được viết với VB6:
Public Function UNItoASCII$(Str$)
Dim Uni$: Uni = "áà" & W(7843) & "ã" & W(7841) & W(259) & W(7855) & W(7857) & W(7859) & W(7861) & W(7863) & "â" & W(7845) & W(7847) & W(7849) & W(7851) & W(7853) & W(273) & "éè" & W(7867) & W(7869) & W(7865) & "ê" & W(7871) & W(7873) & W(7875) & W(7877) & W(7879) & "íì" & W(7881) & W(297) & W(7883) & "óò" & W(7887) & "õ" & W(7885) & "ô" & W(7889) & W(7891) & W(7893) & W(7895) & W(7897) & W(417) & W(7899) & W(7901) & W(7903) & W(7905) & W(7907) & "úù" & W(7911) & W(361) & W(7909) & W(432) & W(7913) & W(7915) & W(7917) & W(7919) & W(7921) & "ý" & W(7923) & W(7927) & W(7929) & W(7925) & _
"ÁÀ" & W(7842) & "Ã" & W(7840) & W(258) & W(7854) & W(7856) & W(7858) & W(7860) & W(7862) & "Â" & W(7844) & W(7846) & W(7848) & W(7850) & W(7852) & W(272) & "ÉÈ" & W(7866) & W(7868) & W(7864) & "Ê" & W(7870) & W(7872) & W(7874) & W(7876) & W(7878) & "ÍÌ" & W(7880) & W(296) & W(7882) & "ÓÒ" & W(7886) & "Õ" & W(7884) & "Ô" & W(7888) & W(7890) & W(7892) & W(7894) & W(7896) & W(416) & W(7898) & W(7900) & W(7902) & W(7904) & W(7906) & "ÚÙ" & W(7910) & W(360) & W(7908) & W(431) & W(7912) & W(7914) & W(7916) & W(7918) & W(7920) & "Ý" & W(7922) & W(7926) & W(7928) & W(7924)
Dim Asci$: Asci = String(17, "a") & "d" & String(11, "e") & String(5, "i") & String(17, "o") & String(11, "u") & String(5, "y") & String(17, "A") & "D" & String(11, "E") & String(5, "I") & String(17, "O") & String(11, "U") & String(5, "Y")
Dim S$, Temp$, K&, I&: I = Len(Str)
For I = 1 To I
S = Mid(Str, I, 1)
K = InStr(1, Uni, S)
If K Then
Temp = Temp & Mid(Asci, K, 1)
Else
Temp = Temp & S
End If
Next ' truongphu@caulacbovb.com
UNItoASCII = Temp
End Function
Function W(S As String) As String
W = ChrW(S)
End Function
Private Sub Command1_Click()
Text1 = UNItoASCII(TextBox1) ' TextBox1 có font thuôc Unicode
End Sub
Trong 2 function trên, Function W chỉ có nhiệm vụ thu gọn ChrW thành W, mục đích để viết chuỗi Uni ngắn bớt.
Translate
Đăng ký:
Đăng Nhận xét (Atom)
Mục lục Toàn bộ (theo thứ tự thời gian)
- Tháng ngắn nhất là tháng nào? Which month is the shortest month?
- Jekyll and Hyde: Đa nhân cách hay Thiên thần và Ác quỷ
- Nobel vật lý 2013; Hạt Higgs là gì?
- Kiến trúc sư trở thành Cha tinh thần của công nghệ nano
- Quốc gia là gì?
- Mặt trời qua thiên đỉnh và Ngày dài nhất
- Chèn hình ảnh trong Mail Merge (mail merge with images)
- Hoàng Hạc Lâu Thôi Hiệu
- Tác phẩm điêu khắc ánh sáng sống động
- Tìm Vĩ độ và Kinh độ trong thực tế
- Tốc độ, UFO và người ngoài hành tinh
- Du Lịch qua Google Maps
- Tinh trùng của nữ và Trứng của nam
- Nhạc Vàng MP3
- Đứa con có một cha và hai mẹ
- Ngóng chồng. Hát nói
- Lịch sử Trái đất
- Cành hoa sen
- Hình chiếu quỹ đạo vệ tinh là hình sin
- Dòng tế bào bất tử: Hela cell line
- Cưới vợ và trinh tiết
- cuối chân trời sao và biển hôn nhau
- Sinh vật khảm là gì? (Chimerism) [Minh họa bài Mẹ đẻ con không cùng ADN]
- Giá dollar, Giá vàng thế giới và Việt Nam
- Phụ nữ Việt thua xa phụ nữ Tây về mọi khoản!
- Kỳ quan thiên nhiên: Con mắt của trái đất.
- Các phép tính về giá vàng tại Việt Nam và thế giới
- Linh hồn (phần 2)
- Thanh minh cho "em" trong "Tôi đưa em sang sông"
- Cảnh tượng sao chổi Pan-STARRS ở bán cầu nam
- Tin chấn động: Tìm thấy bộ xương trên sao Hỏa
- Các phần mềm đơn giản (Thường xuyên bổ sung)
- Sao Chổi ISON sẽ xuất hiện cuối năm nay!
- CHIA MỘT GÓC THÀNH BA
- Vắng lặng chợ nổi (Cái Răng - Cần Thơ)
- Thiệp Mừng Xuân
- Thời gian tương đối hay tuyệt đối khi vật chuyển động?
- Linh hồn
- Lịch sử tiến hóa loài người
- Dùng MS Word và VBA (macro)
- Điều trị Cao Huyết Áp không rõ nguyên nhân
- Tước vị phong kiến
- KHẢO SÁT ĐẲNG THỨC A² = B² + C² (Định lý Pythagore)
- Tự tạo phần mềm đọc tiếng Anh trên máy tính.
- Gọi nhầm tên động vật vì đồng âm
- ảnh khảo cổ lừa bịp tinh vi
- Giải toán cổ: Cầu phương hình tròn
- Nên gọi từ "Hán Việt" là từ "Việt Đường"
- Quốc hiệu Việt Nam
- Sự Học
- Giấc mơ Trường Sinh
- Đổi ra năm Âm lịch Can-Chi
- Cách dùng từ "nguyên", "cựu" và "cố"
- Đo bán kính trái đất vào ngày đông chí (hoặc ngày hạ chí)
- Ngày tận thế 21/12/2012
- vài Giải thích về cách làm kim chi, dưa cải...
- Nghe Như Quỳnh hát
- Phân rã hạt nhân Uranium-235
- Bàn về chữ Hiếu
- Trăng tròn và lễ Phục sinh (Easter)
- Bàn luận về xin và mời
- Phiếm luận về Chân Dài
- Hố đen
- Hôi nách
- Giảm béo
- Trí Thức
- Macro: Uppercase an unicode character after a dot
- Đừng nghe những gì CP Trung quốc nói!
- Câu chuyện khoa học: Kỹ thuật nhân bản và chuyện 1 ông 2 bà cùng thụ tinh.
- Những người có ngoại hình kỳ lạ
- Chuyển đổi Âm Dương lịch
- Đến nước Mỹ là ước mơ nhiều người
- Loại bỏ phần tử đầu trong mảng
- Hòa hợp tình dục
- Chuyển ký tự có dấu thành không dấu (Unicode to ASCII)
- Export Excel to Access
- Nhập hai mảng 1 chiều thành một mảng 2 chiều (VB6)
- Phiếm luận về nem chả
- Phiếm luận về máu mủ
- Trọn vẹn ước mơ
- Từ nguyên của "vợ chồng"
- Ngoại tình ngẫu hứng dễ có thai gấp 5 lần
- Rượu Cognac/Brandy
- Recordset sang Excel VB6 (không vòng lặp)
- Đồng dao ở Bao Vinh (1950)
- Đồng dao ở Bao Vinh (1964)
- 7 DẠNG NĂNG LỰC
- Tản mạn về Bao Vinh
- Giải thuật đếm số ký tự trong chuỗi
- Giao Phối Cận Loài
- Phụ nữ là gì? Đấy là cả vấn đề!
Chào bác,
Trả lờiXóaEm thử chạy hàm này thấy có một số ký tự không convert được như: ò, õ ã, ì. Nó bị lỗi ở đâu vậy bác?
Tôi không rõ bạn thử chạy là như thế nào.
XóaCode trên rất tốt cho tất cả các nguyên âm có dấu của tiếng Việt.
Cần nhắc lại tiêu đề: chuyển sang không dấu của các ký tự thuộc bảng mã unicode.
Nếu bạn dùng các mã tiếng Việt của Việt nam (font 1 byte như VNI, ABC...) thì không đúng!
Thiết kế Form: bạn cần Command1, Text1 là Textbox chuẩn, TextBox1 là TextBox hổ trợ unicode, có font nhóm unicode, vd Arial. Thông thường chúng ta dùng trong MS Form 2.0.
Chúc bạn thành công
hi, em thử cái hàm bác viết trong topic này thì OK: http://www.forum.caulacbovb.com/viewtopic.php?f=7&t=6122
Trả lờiXóacó lẽ là do Copy từ trang web vô code nên có một số ký tự bị sai mã sao đó.
Cám ơn bác đã Reply. Em ko tham gia diễn đàn, nhưng nghe danh bác trên đó đã lâu, mong ước là sẽ có một ngày vào trong đó (em ở Hải Dương) thăm & ngồi uống rượu với bác...
Tôi muốn hỏi: Nếu người ta nói ký tự không dấu, thì có được viết Đ, Ô không? Hay nói cách khác các nguyên âm Ê, Â, Ă, Ô, Ơ, Ư và phụ âm Đ có được coi là ký tự có dấu không?
Trả lờiXóa