10-11-2010, 12:50
|
|
|
חבר מתאריך: 09.11.02
הודעות: 2,307
|
|
"חיתוך" string בMysql ו-utf8
אהלן אהלן
יש לי string ובותוכו יש תווים בעברית ובאנגלית.
נניח אני רוצה להציג 12 תווים מתוך כל הstring ולאחר מכן "..."
(לדוגמא: "מה קורה את..." --> שיבינו שיש המשך למשפט).
הstring מקודד בutf8.
והרי ידוע שכל תו באנגלית הוא אוקטטה אחת, לאומת עברית שזה 2.
אם היה לי רק תווים באנגלית הייתי עושה פשוט Right לשדה ל 12X8:
קוד:
SELECT RIGHT(`fld`,96) FROM tbl
אם היו רק תווים בעברית הייתי פשוט מכפיל את הערך של הRight ב2 (192 סה"כ)
So far, So good.
הבעיה מתחילה כשבתוך ה sting מעורבבים גם וגם, ואז אתה לא יכול לדעת כמה תווים לחתוך.
איך אתם מתמודדים עם דבר כזה?
חשבתי לספור את התווים באנגלית (בRegex או משהו) ולחסר מסה"כ התווים אבל זה בלאגן מידי.
אשמח לחוות דעת...
|