نکته JSON فارسی در اوراکل
وقتی ما از UTF-8 در اوراکل استفاده می کنیم خروجی دیتای JSON clob نیز بصورت Unicode می باشد.
نتیجه:
دیتای APEX_JSON (یکی ازپکیج های اوراکل APEX)در اوراکل دقیقا طبق JSON standard کامپایل می شود. در نتیجه خروجی که برای حروف فارسی مشاهده می کنیم که با “u\” و یکسری اعداد پشت سرهم می باشد کاملا صحیح می باشد. و حال اگر ما این دیتا را برای استفاده در وب سرویس با ابزراهای مختلف آماده می کنیم باید در آن طرف هنگام Parse کردن دیتای JSON بصورت Unicode اینکار را انجام دهند.
حتی می توانید آن را در وب تست کنید و می بینید که کاملا صحیح می باشد:
JavaScript using:
console.log( { "EMPNO":7839 ,"ENAME":"\u0633\u0639\u06CC\u062F" } );
Dispaly:
Object {EMPNO: 7839, ENAME: "سعید"}
JavaScript using:
console.log( { "EMPNO":7839 ,"ENAME":"\u0633\u0639\u06CC\u062F" } );
Dispaly:
Object {EMPNO: 7839, ENAME: "سعید"}
چیکار کنیم:
-
اگر طرف مقابل شما JSON parser شان هنگام خواندن دیتا دچار مشکل شد یا ضعف آن ابزار می باشد و باید از پکیج هایی که در اینترنت می باشد استفاده کنند. یا اینکه کمی مشکل برنامه نویسی که در هر صورت باید خودشان مشکل را حل کنند.
-
در بعضی مواقع طرف مقابل شما دارای قدرت بیشتری می باشد و به اصطلاح توپ را در زمین شما می اندازد و از شما کاراکترهای فارسی را درخواست می کند که باید از روش زیر در اوراکل با کمک (UNISTRوREPLACE) و همینطور مواردی که بالا به آن اشاره شده استفاده کنید.
SELECT UNISTR(REPLACE('\u0633\u0639\u06CC\u062F','\u','\')) FROM DUAL;
Result:
سعید
Result:
سعید