בעיה בקבלת תו יחיד ממחרוזת
-
יש לי משתנה-מחרוזת בעברית שאני רוצה להוציא ממנו תו במקום כלשהוא (למשל התו השני), אבל למעשה מה שאני מקבל זה תו בגיבריש!
למשל על האות ק אני מקבל �.
למה זה קורה?
ואיך למעשה אני יכול לקבל תו במקום כלשהוא אבל שיחזור תקין ללא בעיות?
אני ניסיתי לקבל את התו המבוקש פשוט ע"י כתיבת שם המשתנה ואחריו סוגריים מרובעות עם מיקום התו, ניסיתי גם עם הפונקצייה substr אבל גם אותו דבר...
ואחרי כמה בדיקות ראיתי שבmb_substr
הוא לא כותב כלום, אבל בפשוטsubstr
הבעיה היא רק אם אני כותב בנוסף למספר שממנו יתחיל, גם מספר התווים שיקח, במקרה הזה שבאנגלית הוא עובד חלק, בעברית הוא מתחיל לקשקש... -
@שמואל-ש אמר בבעיה בקבלת תו יחיד ממחרוזת:
substr
האם כשהשתמשת ב mb_substr ציינת את הקידוד utf-8?
דוגמא:mb_substr($string, 0, 10, "UTF-8")
יש הבדל בין שיטת האחסון של תווי utf-8 לשאר התווים, ב utf-8 כל תו תופס 4 בתים, ולכן כשאתה מנסה להחזיר את המיקום 2 לדוגמא, הוא מחזיר תו חלקי בעצם
-
@amp-Software-0 בסוף זה הסתדר ע"י
mb_substr
, כנראה האתר ששם ניסיתי לא הכירה את המחלקה ומשם התחילה הבעיה...
תודה בכל אופן!