הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] שתי קידודים בדף אחד? (https://hosts.co.il/forums/showthread.php?t=43457)

Alter 12-04-07 21:28

[PHP] שתי קידודים בדף אחד?
 
שלום לכולם!
כרגע אני בתהליך של החלפת עיצוב למערכת גלרייה אשר מבוססת UTF-8 Unicode והבסיס נתונים הוא גם עם תווים של UTF לדוגמא:
קוד:

מפגש
עכשיו בעיצוב שאני מוסיף לו אני שולף מידע מבסיס נתונים של האתר עצמו בשביל התפריט בצד (לא שזה משנה לנו בדיוק מה אני שולף אבל זה העיקרון ;P ) והמידע שם הוא בליטינית (latin1_swedish_ci)

עכשיו, בגלל שהדף של הגלריה שמור כUTF-8 אז המידע שנשלף מהטבלה הלטינית מוצג כמעויינים.

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

אם יש לכם עוד דרכים (כמו הצגה של 2 השפות בדף למרות המגבלות) זה יהיה אחלה בחלה.

אשמח לרעיונות יצרתיים.
תודה מראש,
רון.

RS324 12-04-07 21:33

הגדרת SET NAMES utf8 ?

Alter 12-04-07 21:42

ציטוט:

נכתב במקור על ידי RS324 (פרסם 458123)
הגדרת SET NAMES utf8 ?

אממ ניסיתי למידע הנוסף שאני שולח, כאילו לא המידע שבא עם המערכת אלא מה שאני כתבתי..
כותב לי בלטינית עכשיו çåîøéå äàôìéí
בעיקרון אני יודע להמיר את זה.. אבל זה סתם לטחון את השרת עם מערכי אותיות..

RS324 12-04-07 23:55

עקרונית המסד שלך צריך להיות UTF8_GENREAL_CI בשביל לתמוך בריבוי שפות אחרת זה הכל מבחינתו אותו הדבר...

דניאל 12-04-07 23:57

ציטוט:

נכתב במקור על ידי RS324 (פרסם 458123)
הגדרת SET NAMES utf8 ?

האמת שכמו שזה נשמע,
mysql_query("SET NAMES latin1");

יותר יתאים לו..

Alter 13-04-07 14:25

ציטוט:

נכתב במקור על ידי RS324 (פרסם 458233)
עקרונית המסד שלך צריך להיות UTF8_GENREAL_CI בשביל לתמוך בריבוי שפות אחרת זה הכל מבחינתו אותו הדבר...

בכניסה הראשונית לphpmyadmin בMySQL connection collation: שבדף הראשי זה מוגדר איך שאמרת.
בבסיס עצמו של האתר זה מוגדר כlatin, בבסיס של הגלריה גם כן למרות שזה UTF ..
מה לשנות?

ציטוט:

נכתב במקור על ידי TelecarT (פרסם 458235)
האמת שכמו שזה נשמע,
mysql_query("SET NAMES latin1");

יותר יתאים לו..

זה לא עושה את העבודה , בדקתי וניסיתי |קורץ|

Unknown 13-04-07 14:32

אם המסד מוגדר כLATIN, תיכנס לOPERATIONS ותשנה את זה לUTF8_GENERAL_CI או ל
UTF_UNICODE
ככה אתה עורך טבלאות


בשביל לערוך שדות, אתה מסמן בצד בV את כל השדות של הטקסט עם הLATIN, ואז נכנס לעריכה של כולם, ומשנה לכל אחד לאחד מהUTF שרשמתי מעל

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

אחרי ששינית את כל השדות ככה תכניס נתונים מחדש
במידה וזה מטופס, חשוב שהשליחה תהיה מקודדת כUTF, כלומר יהיה לך את הSET NAMES, ישר לאחר החיבור למסד, כלומר, זאת השאילתה הראשונה שלך
ושהטופס עצמו בפורמט של UTF8, ככה שהנתונים ישלחו כמו שצריך

אם אתה רוצה להמיר את זה לכל שפה אחרת, כלומר לANSI או משהו, בדיוק אותו תהליך, רק לבחור קידודים אחרים

Alter 13-04-07 16:10

ציטוט:

נכתב במקור על ידי Unknown (פרסם 458451)
אם המסד מוגדר כLATIN, תיכנס לOPERATIONS ותשנה את זה לUTF8_GENERAL_CI או ל
UTF_UNICODE
ככה אתה עורך טבלאות


בשביל לערוך שדות, אתה מסמן בצד בV את כל השדות של הטקסט עם הLATIN, ואז נכנס לעריכה של כולם, ומשנה לכל אחד לאחד מהUTF שרשמתי מעל

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

אחרי ששינית את כל השדות ככה תכניס נתונים מחדש
במידה וזה מטופס, חשוב שהשליחה תהיה מקודדת כUTF, כלומר יהיה לך את הSET NAMES, ישר לאחר החיבור למסד, כלומר, זאת השאילתה הראשונה שלך
ושהטופס עצמו בפורמט של UTF8, ככה שהנתונים ישלחו כמו שצריך

אם אתה רוצה להמיר את זה לכל שפה אחרת, כלומר לANSI או משהו, בדיוק אותו תהליך, רק לבחור קידודים אחרים

לא בדיוק עזרת לי שאמרת שכל המידע יהרס.
אני לא רוצה לשנות את הקידוד של האתר כי הוא עובד מצויין. אין לי שום סיבה להפוך אותו לUTF!

מה שכן, אני רציתי לדעת, ובשביל זה נועד הנושא, איך אני יכול לשלוף 2 שפות יחדיו לאותו הדף מבלי לשנות את הקידוד הקיים שלהם בבסיס נתונים.
(או לשנות את זה של הגלריה, שאין לי בעיה לשנות אותו כל עוד יש דרך להמיר את הנתונים שבבסיס נתונים ללטינית מUTF).
בכל מקרה, תודה על הנסיון לעזור.

רותם, יש לך עוד משהו שיכול לעזור לי?

Unknown 13-04-07 16:26

במקרה הזה מגדירים את הדף לקידוד מסויים
ומתאימים את המידע בDB אליו

יש את הפונקציות של iconv שעושות את זה, אתה יכול לקרוא עליהן, השאלה אם הן מותקנות על השרת שלך

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

Tomer 13-04-07 16:30

רון, את המידע שאתה מקבל ב UTF8 תעביר דרך הפונקציה הבאה:

PHP קוד:

function iconv_utf8_cp1255 ($utf8) {
    return 
preg_replace("/\xD7([\x90-\xAA])/e","chr(ord(\${1})+80)",$utf8);




כל הזמנים הם GMT +2. הזמן כעת הוא 02:28.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ