דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. קידוד עברית לתווי יוניקוד באמצעות VBA

קידוד עברית לתווי יוניקוד באמצעות VBA

מתוזמן נעוץ נעול הועבר ארכיון code613m
4 פוסטים 2 כותבים 332 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

    שלום, בעבר נשאלה כאן שאלה אודות קידוד URL והובא קוד מוצלח על ידי דוד ל.ט.

    כעת יש לי שאלה דומה לגבי קידוד של יוניקוד לתווי יוניקוד, כלומר אם אני מכניס "א" אני אמור לקבל "%u05D0" יש איזה אתר כאן שמראה את המפה, וכאן הוא מראה את הפירוט של האות "א" בעברית.

    השאלה היא, איזו היא דרך נקייה וקלה בקוד לקבל את הקידוד.

    אם תשאלו מה לי ולצרה הזאת? התשובה פשוטה, באמצעות אתר דואר ישראל אפשר לקבל מיקוד לפי כתובת, ממש תענוג, אבל רק חסר לי את הקידוד.

    הנה למשל הלינק הזה:

    "http://www.israelpost.co.il/zip_data1.nsf/SearchZip?OpenAgent&Location=%u05D1%u05E0%u05D9 %u05D1%u05E8%u05E7&POB=&Street=%u05D7%u05D6%u05D5%u05DF %u05D0%u05D9%u05E9&House=1&Entrance=
    "
    נותן לנו את המיקוד של רחוב חזון איש 1 בבני ברק (למעט 4 התווים הראשונים, שמשמשים לזיהוי התשובה).

    זה נכס שכדאי לאמץ אותו בשביל כל מי שעוסק ב IT.

    אודה על כל עזרה.

    פורסם במקור בפורום CODE613 ב09/08/2013 15:09 (+03:00)

    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

    תגובה 1 תגובה אחרונה
    0
    • א מנותק
      א מנותק
      ארכיטקט
      כתב ב נערך לאחרונה על ידי
      #2

      טוב אז מצאתי לגמרי במקרה נתקלתי בקוד הזה תוך כדי חיפוש של נושא אחר לגמרי. יכול לעזור לכל עם ישראל.

      Public Function UnicodeEncode(str) As String
          If IsNull(str) Then Exit Function
          Dim i, j, aL1, aL2, c, p
      
          aL1 = Array(&H22, &H5C, &H2F, &H8, &HC, &HA, &HD, &H9)
          aL2 = Array(&H22, &H5C, &H2F, &H62, &H66, &H6E, &H72, &H74)
          For i = 1 To Len(str)
              p = True
              c = Mid(str, i, 1)
              For j = 0 To 7
                  If c = Chr(aL1(j)) Then
                      UnicodeEncode = UnicodeEncode & "%" & Chr(aL2(j))
                      p = False
                      Exit For
                  End If
              Next
      
              If p Then
                  Dim a
                  a = AscW(c)
                  If a > 31 And a < 127 Then
                      UnicodeEncode = UnicodeEncode & c
                  ElseIf a > -1 Or a < 65535 Then
                      UnicodeEncode = UnicodeEncode & "%u" & String(4 - Len(Hex(a)), "0") & Hex(a)
                  End If
              End If
          Next
      End Function
      

      פורסם במקור בפורום CODE613 ב11/08/2013 00:54 (+03:00)

      אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

      תגובה 1 תגובה אחרונה
      0
      • א מנותק
        א מנותק
        ארכיטקט
        כתב ב נערך לאחרונה על ידי
        #3

        תודה למג'יק קוד על עריכת הקוד ונקיונו:

        Public Function UnicodeEncode(str) As String
            If IsNull(str) Then Exit Function
            Dim i, a
            For i = 1 To Len(str)
                    a = AscW(Mid(str, i, 1))
                    If a > -1 And a < 127 Then
                        UnicodeEncode = UnicodeEncode & "%" & String(2 - Len(Hex(a)), "0") & Hex(a)
                    ElseIf a > -1 Or a < 65535 Then
                        UnicodeEncode = UnicodeEncode & "%u" & String(4 - Len(Hex(a)), "0") & Hex(a)
                    End If
            Next
        End Function
         :|
        

        פורסם במקור בפורום CODE613 ב11/08/2013 18:50 (+03:00)

        אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

        תגובה 1 תגובה אחרונה
        0
        • רחמיםר מנותק
          רחמיםר מנותק
          רחמים מורחק
          כתב ב נערך לאחרונה על ידי
          #4

          והנה אותה הפונקציה ב VBNET

          Public Function UnicodeEncode(ByVal str As String) As String
                  If String.IsNullOrEmpty(str) Then Exit Function
                  Dim i, a
                  For i = 1 To Len(str)
                      a = AscW(Mid(str, i, 1))
                      If a > -1 And a < 127 Then
                          UnicodeEncode = UnicodeEncode & "%" & New String("0", 2 - Len(Hex(a))) & Hex(a)
                      ElseIf a > -1 Or a < 65535 Then
                          UnicodeEncode = UnicodeEncode & "%u" & New String("0", 4 - Len(Hex(a))) & Hex(a)
                      End If
                  Next
              End Function
          

          פורסם במקור בפורום CODE613 ב07/12/2013 22:06 (+02:00)

          תגובה 1 תגובה אחרונה
          0

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום