none
谁知道怎么用算法提取汉字的声母 RRS feed

答案

  • LiZhePro 你好,

    如果你仅仅是为了根据拼音排序,不用提取汉字的声母,直接通过Ascii来就是了。一下这个帖子详细地说了关于汉字编码的问题。
    http://topic.csdn.net/t/20020824/14/966782.html

    还有一点是有些控件应该已经支持按照当前计算机的Culture来排序的,例如,DataGridView, ListView, ListBox。你应该用的是中文系统吧,难道不支持排序?

    Sincerely,
    Kira Qian


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    • 已标记为答案 LiZhePro 2010年1月22日 3:34
    2010年1月20日 6:36

全部回复

  • 你好!
         具体可以参考:
    http://www.cnblogs.com/stpangpang/archive/2006/10/13/528663.html
         希望对你有帮助!
    周雪峰
    • 已标记为答案 LiZhePro 2010年1月18日 4:55
    • 取消答案标记 LiZhePro 2010年1月18日 5:04
    2010年1月18日 4:51
    版主
  • 谢谢,很有用,但是我现在学的是vb6.0   这段代码谁能帮我看看,帮我转成vb6.0的,谢谢了!
    Public Function GetPinYin(ByVal str As String) As String
            Dim pinyin As Char
            Dim c As Char
            Dim array() As Byte
            Dim i As Integer
            Dim sb As New System.Text.StringBuilder(str.Length)
            For Each c In str.ToCharArray
                pinyin = c
                array = System.Text.Encoding.Default.GetBytes(New Char() {c})
                If array.Length = 2 Then
                    i = array(0) * &H100 + array(1)
                    If i < &HB0A1 Then
                        pinyin = c
                    ElseIf i < &HB0C5 Then
                        pinyin = "a"
                    ElseIf i < &HB2C1 Then
                        pinyin = "b"
                    ElseIf i < &HB4EE Then
                        pinyin = "c"
                    ElseIf i < &HB6EA Then
                        pinyin = "d"
                    ElseIf i < &HB7A2 Then
                        pinyin = "e"
                    ElseIf i < &HB8C1 Then
                        pinyin = "f"
                    ElseIf i < &HB9FE Then
                        pinyin = "g"
                    ElseIf i < &HBBF7 Then
                        pinyin = "h"
                    ElseIf i < &HBFA6 Then
                        pinyin = "g"
                    ElseIf i < &HC0AC Then
                        pinyin = "k"
                    ElseIf i < &HC2E8 Then
                        pinyin = "l"
                    ElseIf i < &HC4C3 Then
                        pinyin = "m"
                    ElseIf i < &HC5B6 Then
                        pinyin = "n"
                    ElseIf i < &HC5BE Then
                        pinyin = "o"
                    ElseIf i < &HC6DA Then
                        pinyin = "p"
                    ElseIf i < &HC8BB Then
                        pinyin = "q"
                    ElseIf i < &HC8F6 Then
                        pinyin = "r"
                    ElseIf i < &HCBFA Then
                        pinyin = "s"
                    ElseIf i < &HCDDA Then
                        pinyin = "t"
                    ElseIf i < &HCEF4 Then
                        pinyin = "w"
                    ElseIf i < &HD1B9 Then
                        pinyin = "x"
                    ElseIf i < &HD4D1 Then
                        pinyin = "y"
                    ElseIf i < &HD7FA Then
                        pinyin = "z"
                    End If
                End If
                sb.Append(pinyin)
            Next
            Return sb.ToString()
        End Function

    2010年1月18日 4:55
  • LiZhePro 你好,

    如果你仅仅是为了根据拼音排序,不用提取汉字的声母,直接通过Ascii来就是了。一下这个帖子详细地说了关于汉字编码的问题。
    http://topic.csdn.net/t/20020824/14/966782.html

    还有一点是有些控件应该已经支持按照当前计算机的Culture来排序的,例如,DataGridView, ListView, ListBox。你应该用的是中文系统吧,难道不支持排序?

    Sincerely,
    Kira Qian


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    • 已标记为答案 LiZhePro 2010年1月22日 3:34
    2010年1月20日 6:36
  • 我用的英文Win7.。。
    2010年1月22日 3:34