Hàm xử lý chuỗi tiếng việt có dấu thành không dấu

0 thích 0 không thích
62 lượt xem
đã hỏi 20 Tháng 6, 2016 trong Lập trình VB.NET bởi TONA DINH (1,570 điểm)
    Private Const sUnicode As String = "0224 0225 7843 0227 7841 0259 7857 7855 7859 7861 7863 0226 7847 7845 7849 7851 7853 0192 0193 7842 0195 7840 0258 7856 7854 7858 7860 7862 0194 7846 7844 7848 7850 7852 0242 0243 7887 0245 7885 0244 7891 7889 7893 7895 7897 0417 7901 7899 7903 7905 7907 0210 0210 0211 7886 0213 7884 0212 7890 7888 7892 7894 7896 0416 7900 7898 7902 7904 7906 0232 0233 7867 7869 7865 0234 7873 7871 7875 7877 7879 0200 0201 7866 7868 7864 0202 7872 7870 7874 7876 7878 0249 0250 7911 0361 7909 0432 7915 7913 7917 7919 7921 0217 0218 7910 0360 7908 0431 7914 7912 7916 7918 7920 0236 0237 7881 0297 7883 0204 0205 7880 0296 7882 7923 0253 7927 7929 7925 7922 0221 7926 7928 7924 0273 0272 0032"
    Private Const sAnsii As String = "0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0097 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0065 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0079 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0069 0069 0069 0069 0069 0069 0069 0069 0069 0069 0069 0117 0117 0117 0117 0117 0117 0117 0117 0117 0117 0117 0085 0085 0085 0085 0085 0085 0085 0085 0085 0085 0085 0105 0105 0105 0105 0105 0073 0073 0073 0073 0073 0121 0121 0121 0121 0121 0089 0089 0089 0089 0089 0100 0068 0045"

    Private Function BoDauTV(ByVal str As String) As String
        Dim iStt As Integer = 0, iVitri As Integer = -1
        Dim sTmp As String = "", sKetqua As String = ""

        While iStt < str.Length
            sTmp = str.Substring(iStt, 1)
            iVitri = sUnicode.IndexOf(Format(AscW(sTmp), "0000").ToString)
            If iVitri >= 0 Then
                sKetqua &= ChrW(sAnsii.Substring(iVitri, 4))
            Else
                If AscW(sTmp) = 272 Or AscW(sTmp) = 208 Then sTmp = ChrW(68)
                sKetqua &= sTmp
            End If
            iStt += 1
        End While
        Return sKetqua
    End Function

    

1 câu trả lời

0 thích 0 không thích
đã trả lời 27 Tháng 9, 2016 bởi loidotat (1,130 điểm)
.replace("Á","A")
...