UTF בבסיס הנתונים - מספר שאלות

noamways

New member
UTF בבסיס הנתונים - מספר שאלות

שלום לכולם ואני מודה מראש על העזרה. אני משתמש בבסיס נתונים MSSQL-8 1. האתר שלי מתחיל לעבוד עם שפות נוספות חוץ מעברית, האם עלי להמיר את כל הבסיס נתונים שלי לשמירת תוים ב - UTF? 2. אם כן באיזה מספר UTF עלי להשתמש? 3. אם כבר יש לי המון מידע בבסיס נתונים האם אני אפגע בו כאשר אבצע המרה שלו. 4. כיצד ממירים את בסיס הנתונים? האם רק צריך לשנות את שמות שדות הטקסט שיכלולו n בהתחלה? 5. האם גם לאחר ההמרה יהיו שפות שלא אוכל לאחסן? 6. האם במקביל לשינוי בבסיס הנתונים עלי לשנות משהו בקידוד של הדף באתר שלי? שוב תודה רבה על מי שקרא ותודה גדולה עוד יותר למי שיוכל לתת לי תשובה לפחות לחלק מהשאלות. שבוע טוב
 

pomela

New member
>>>

בקצרה, מבלי להתייחס לכל הסעיפים, במקרה שלך ממליץ להשתמש בשדות unicode (כל אלו שמתחילים ב-N) במקום שדות הטקסט הקיימים. דוגמא לביצוע המרה:
ALTER TABLE XXX ALTER COLUMN YYY nvarchar(100)​
מה שצריך לקחת בחשבון הוא ששדות charו-varchar יכולים להכיל עד 8000 תווים, ואילו אחיהם nchar ו-nvarchar רק 4000 תווים, כך שלפני שאתה מסב שדה כזה, בדוק מהו אורך המחרוזת המקסימלי שקיים כבר בטבלה. בהמרת text ל-ntext לא צפויות בעיות מסוג זה. ממליץ לך לקרוא קצת על data types ב-mssql, וכמובן לערוך גיבוי מלא וסקריפט מסודר להסבה. לגבי קידוד בדף, פנה לפורום המתאים לשפה בה אתה כותב.
 

noamways

New member
האם קיימת אפשרות מהירה

להמרה של כל בסיס הנתונים? או שחייב לעבור טבלה טבלה?
 

Ice Age

New member
תשובות

1. האתר שלי מתחיל לעבוד עם שפות נוספות חוץ מעברית, האם עלי להמיר את כל הבסיס נתונים שלי לשמירת תוים ב - UTF? עקרונית כן - unicode יאפשר לך לעבוד בשפות שונות. עם זאת, אתה גם יכול להגדיר כל עמודה בטבלה ב-collation שלה, אבל אתה צריך להיות מודע להמרות מה-DB לאפליקציה. בשורה התחתונה הכי קל לעבוד עם unicode. 2. אם כן באיזה מספר UTF עלי להשתמש? אין לך הרבה ברירות - SQL Server עובד עם UCS2, שמקביל כמעט לגמרי ל-UTF-16. זה מן הסתם מכסה לך את כל השפות שתצטרך. 3. אם כבר יש לי המון מידע בבסיס נתונים האם אני אפגע בו כאשר אבצע המרה שלו. אתה יכול לבצע את ההמרה במספר דרכים: DTS ל-DB חדש, העתקה באמצעות סקריפטים או שינוי טבלאות קיימות. כל הדרכים כשרות וניתן לבצע אותן ללא פגיעה בנתונים. 4. כיצד ממירים את בסיס הנתונים? האם רק צריך לשנות את שמות שדות הטקסט שיכלולו n בהתחלה? הסכמה החדשה צריכה לכלול במקום char, varchar, text את טיפוסי הנתונים nchar, nvarchar, ntext בהתאמה. אם יש לך PK על שדות טקסטואליים, זה נושא בפני עצמו שצריך לשים לב אליו. 5. האם גם לאחר ההמרה יהיו שפות שלא אוכל לאחסן? שפות אסיאתיות מסוימות לא נכנסות ל-UTF-16, ויש דרכים להתגבר על זה. תאמין לי שאתה לא רוצה לשמוע על הדרכים לעקוף את העניין אלא אם כן אתה ממש חייב לייצג גם אותן. 6. האם במקביל לשינוי בבסיס הנתונים עלי לשנות משהו בקידוד של הדף באתר שלי? כן, האפליקציה חייבת להיות מודעת ל-unicode בשני מישורים: הכנסת מידע מתבצעת תוך שימוש ב-unicode (N'AAA'), ושליפה כמובן של unicode והצגה נכונה שלו למשתמש.
 

noamways

New member
ממש מצוין, קבל ח"ח. עוד שאלה אחת

למה אתה מתכוון ב - collation? נראה לי שאני פשוט משתמש במושג אחר
 
למעלה