![]() |
לכל המתכנתים שעובדים עם UTF8
אני רוצה להדגיש כמה בעיות שאני בטוח שכמעט כולכם לא יודעים על UTF8 ומחרוזות
כל הדוגמאות יצאו מתוך הנחה שהמחרוזת ב UTF8 דוגמא א' : PHP קוד:
כן 10 ולא 5. הסיבה : STRLEN קורא את UTF8 כ 2 ביטים לכל אות. הפתרון :בהמשך. דוגמא ב' : PHP קוד:
פלט שמתקבל : א�אאאאב. הסיבה : SUBSTR לא יודע לחתוך את האותיות כמו שצריך ולכן יש אותיות שנחתכות באמצע ועושות בלגן עקרונית אפשר להמשיך ככה עד מחר... את הפתרון אני אשאיר לכם למצוא בעזרת גוגל. יום נעים שיהיה לכם. |
iconv? =\
מעניין :P |
הפתרון פשוט: http://il2.php.net/manual/en/ref.mbstring.php
|
אפשר להמיר את המחרוזת לקידוד רגיל, לעבוד עליה ואז להמיר לUTF8(אפשרי אם יש בה רק עברית ואנגלית)
ויש בPHP http://www.php.net/manual/en/ref.mbstring.php (פונקציות לעבודה על מחרוזות שכל תו אמור להיות 2byte) רק חבל שזה לא מובנה בתוך המנוע וצריך לאפשר את זה. וראיתי באתר phpclasses (אתר ששווה להציץ בו תמיד!) מחלקה שיכולה לעשות את העבודה: http://www.phpclasses.org/browse/file/16999.html |
ציטוט:
חיפוש לא ארוך מעלה את התוצאות הבאות : PHP קוד:
PHP קוד:
כמובן שאם יש MBSTRING זה מומלץ |
הכי פשוט להשתמש ב Windows-1255, בחיים לא השתמשתי ב UTF8
|
ציטוט:
UTF משמש לרוב לאתרים מרובי שפות, הכנה לריבוי שפות, בחלק מהמקרים קידום אתרים וגם, מאפשר הרבה יותר אופציות בעתיד וסתם חוסך עבודה אח"כ |
אני לא יודע מי אלו כל המתכנתים שאתה מדבר עליהם..
אבל אני עובד עם ASP, ולא נתקלתי בשום בעיה בעבודה עם UTF-8 עם פונקציות מחרוזות. |
אם אין צורך מיוחד, לדעתי לא כדאי לעבוד עם UTF 8.
כי כל תו בעברית לוקח פי 2 מקום וזה קריטי במיוחד אם שומרים את המידע במסד נתונים ככה. |
כל הזמנים הם GMT +2. הזמן כעת הוא 14:31. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ