שלח תשובה

זירת השאלות

428
צפיות
12
תשובות

תוצאות מ SQL Server 2000 מופיעות כס

,‏ 2 בפברואר, 2006

בניתי אתר ב asp.net עם sql server 2000, בתחילה האתר ישב על המחשב המקומי והכל היה תקין, כאשר העלתי אותו לשרת מרוחק, המידע שמגיע מבסיס הנתונים מופיע כ "????" בלבד.
איך ניתן לתקן את זה?

תגיות:

12 תשובות

  1. Baruch G הגיב:

    כן
    בקובץ ה web.config מוגדר:
       <globalization
                requestEncoding="utf-8"
                responseEncoding="utf-8"
       />

    וזה לא ממש עוזר

  2. GreenBerret הגיב:

    ומה עם קובץ הHTML?
    מוגדר לו header של קידוד?

  3. D-almighty הגיב:

    זו אכן בעית קידוד
    אבל לא בעיה בקידוד בHTML אלא בשרת SQL
    תעלה מחדש את המסד אבל תדאג שהוא יקודד כמו שצריך…
    זה קורה המון במעבר בין שרתים…
    היתה לי בעיה זהה עם שרת mysql כשעברתי שרת…
    העניין הוא שכשאתה מוריד את הקובץ sql מהשרת הקודם (כנראה אצלך בבית) אז הוא יוצא עם קידוד שונה מהקידוד שקיים בשרת החדש…
    אתה צריך שהקובץ sql שלך יהיה בעל קידוד זהה לשרת החדש!

    מה שאני עשיתי היה מאוד פשוט
    הקובץ sql שלי, כאשר פתחתי אותו בפנקס רשימות ראיתי שטקסט עברי הינו בג’יבריש.
    אומנם על השרת הישן בג’יבריש תוקן לעברית כאשר עבר לצד הלקוח, אך בחדש לא כך בגלל הקידוד השונה.
    לכן הורדתי תוכנה שנקראת  HEBTML
    תוכנה שבמהותה לוקחת קבצי html והופכת עברית בצורת ג’יבריש (כמו שהיה לי) לעברית תקנית שאפשר לקרוא גם בפנקס הרשימות, אך כמובן שאפשר להשתמש בה גם לקבצי sql כי גם אותם אפשר לפתוח בפנקס רשימות.
    מה שעושים בתוכנה זה פשוט
    פותחים את הקובץ sql דרך התוכנה ונדמה לי שצריך ללחוץ על כפתור מסוים אז כל הטקסט הג’יבריש הופך לעברית
    לאחר מכן תשמור את הקובץ כsql כמובן ותעלה אותו לשרת החדש.

    סליחה שסיבכתי אותך ככה, כשתראה את התוכנה תבין שזה בדיוק שניה…
    ממש לא בעיה להשיג את התוכנה בקאזה או גוגל…

    תהנה. 99% שזה יצליח!

  4. D-almighty הגיב:

    הנה מצאתי לך לינק להורדה של התוכנה
    http://www.parapara.co.il/Software/?SoftwareID=1111

    הורדה דרך נענע…   תהנה.

    להנהלה:
    סליחה על הספאם, פשוט זה יחסוך לבן אדם זמן לחפש את התוכנה.

  5. GreenBerret הגיב:

    יכול להיות
    שזו הבעיה שלו.

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

    כשאתה מוריד קובץ SQL גיבוי, הוא אמור להראות עברית נכונה.

  6. Baruch G הגיב:

    איך מגדירים את זה נכון?
    איך מגדירים את בסיס הנתונים נכון?

  7. gilad123 הגיב:

    תבדוק את זה
    יכולות להיות כמה בעיות
    1 הכנסת הנתונים ל DB
    2 איכסון הנתונים
    3 שליפת הנתונים

    1, 3:
    כדי להגדיר את דף האינטרנט (אני מניח ASP) כעברית

    <%@ Language="VBScript" codepage=1255%>

    גם בדף שמכניס ל DB וגם בדף ששולף (אפשר להגדיר במקום עברית שיהיה UTF)

    2:
    צריך להגדיר את ה DB שה collation שלו יהיה עברית (בתנאי שהמחשב יתמוך בזה)
    או עדיף, להגדיר את כל השדות של התוים כיוניקוד (ב SQL SERVER זה  n לפני סוג הנתונים, לדוגמא varChar => nVarChar (מה שאומר שהם תופסים כפול מקום, לכל דבר שי מחיר…)
    1:
    בנוסף, אם בחרת באפשרות (המומלצת) של יוניקוד, בכל שימוש בסטרינג יש לסמן את הנתונים כיוניקוד, לדוגמא (SQL SERVER)

    INSERT INTO table N’text’

    ה N לפני הציטוט אומרת שהטקסט שבא אחריה הוא יוניקוד

    בהצלחה

  8. D-almighty הגיב:

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

  9. GreenBerret הגיב:

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

  10. gilad123 הגיב:

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

    unicode (גם בהגדרת השדות עצמם) אמור לפתור את רוב הבעיות.

  11. GreenBerret הגיב:

    אתה צודק
    דיברתי על ASCII.
    ולא דיברתי על טרמינל כל שהוא.

שלח תשובה