mcse1234
دوشنبه 02 اسفند 1389, 20:58 عصر
با سلام
مشکل فارسی دیدن و فارسی نویسی در اوراکل فرم تقریباً هیچ ربطی به مباحث ذکر شده در تمام فروم های مرتبط با اوراکل نداره و مسئله NLS_LANG و Locale Builderفقط مختص Databaseهست و تنظیم اون به تنهایی نمی تونه مشکل فرم رو حل کنه..
پس بیاید یکم توی منطق کار این Servlet وارد بشیم تا اشکال کار رو متوجه بشید.
همون طور که همه می دونید اوراکل برای اجرای برنامه به OC4J نیاز داره و این یعنی نیاز به Start و Initial شدن جاوا.
پس خیلی ساده نتیجه می گیریم که تنظیمات ما در NLS_LANG و کارکترهای فارسی افزوده شده در Locale Builder برای شناسایی نیاز به تبدیل به معادل خودشون با استفاده از چند Java Class دارن (برای نمونه NLS_LANG002.Class)
این همون کلاسی هست که وظیفه تبدیل جدول زبان رو از اوراکل به Java Engine و بلعکس داره.
حالا دوستمون شرکت اوراکل! این 4 تا کارکتر ناقابل رو اضافه نکردن توی اون کلاس جاوا و وقتی فایل های Jar برنامه رو Decompile کنید و در قسمت مربوط به زبان متوجه می شید که جای این 4 تا خالیه.
القصه.. زحمت می کشید و کد ASCII این کارکترها رو یافته و به انتهای فایل مربوطه اضافه می کنید.
حالا شما موندین و یک Class که با Decompile تبدیل شده به یه فایل Java. و وظیفه شما اینه که با استفاده از یه IDE مثل JDeveloper که همراه مجموعه Developer Suite نصب شده یه Application ایجاد و یه Java Class بهش اضافه کنید و
فایل Jar که در ابتدای کدهای فایل Decompile شده استفاده شده ازشون رو در قسمت Project Properties اضافه کنید و نهایتاً فایل رو Compile کنید.
حالا فایل Class. شما با تغییرات جدید ایجاد شده. کافیه فایل Jar اصلی رو با نرم افزار WinRAR باز کنید و این کلاس جدید را Drag/Drop کنید توی فایل Jar
تمام شد!
حالا فایل رو با فایل Jar پیشین جایگزین کنید و سرویس OC4J یا اگر از Application Serverاستفاده می کنید سرویس OPMN رو یکبار Stop-Start کنید.
خوب یادم نره بگم که مسیر فایلهای جاوا شما که باید بگردید فایل مورد نظر رو پیدا کنید در DeveloperSuiteHome\Forms\Java هست و یکی از فایهای ذکر شده frmall.jar هست.
نکته دیگه اینکه یکم باید جاوا بلد باشید..اما یقیین داشته باشید که این تنها راه حل شماست.چون من این کار رو کردم و دارم استفادش می کنم ولی به دلایل شغلی بیش از این نمی تونم توضیح بدم..شرمنده
و یه نکته دیگه این که این تنظیمات فقط برای American_America.AR8MSWIN1256 جواب می ده.
یه فرم نمونه هم براتون گذاشتم66651
موفق باشید..
مشکل فارسی دیدن و فارسی نویسی در اوراکل فرم تقریباً هیچ ربطی به مباحث ذکر شده در تمام فروم های مرتبط با اوراکل نداره و مسئله NLS_LANG و Locale Builderفقط مختص Databaseهست و تنظیم اون به تنهایی نمی تونه مشکل فرم رو حل کنه..
پس بیاید یکم توی منطق کار این Servlet وارد بشیم تا اشکال کار رو متوجه بشید.
همون طور که همه می دونید اوراکل برای اجرای برنامه به OC4J نیاز داره و این یعنی نیاز به Start و Initial شدن جاوا.
پس خیلی ساده نتیجه می گیریم که تنظیمات ما در NLS_LANG و کارکترهای فارسی افزوده شده در Locale Builder برای شناسایی نیاز به تبدیل به معادل خودشون با استفاده از چند Java Class دارن (برای نمونه NLS_LANG002.Class)
این همون کلاسی هست که وظیفه تبدیل جدول زبان رو از اوراکل به Java Engine و بلعکس داره.
حالا دوستمون شرکت اوراکل! این 4 تا کارکتر ناقابل رو اضافه نکردن توی اون کلاس جاوا و وقتی فایل های Jar برنامه رو Decompile کنید و در قسمت مربوط به زبان متوجه می شید که جای این 4 تا خالیه.
القصه.. زحمت می کشید و کد ASCII این کارکترها رو یافته و به انتهای فایل مربوطه اضافه می کنید.
حالا شما موندین و یک Class که با Decompile تبدیل شده به یه فایل Java. و وظیفه شما اینه که با استفاده از یه IDE مثل JDeveloper که همراه مجموعه Developer Suite نصب شده یه Application ایجاد و یه Java Class بهش اضافه کنید و
فایل Jar که در ابتدای کدهای فایل Decompile شده استفاده شده ازشون رو در قسمت Project Properties اضافه کنید و نهایتاً فایل رو Compile کنید.
حالا فایل Class. شما با تغییرات جدید ایجاد شده. کافیه فایل Jar اصلی رو با نرم افزار WinRAR باز کنید و این کلاس جدید را Drag/Drop کنید توی فایل Jar
تمام شد!
حالا فایل رو با فایل Jar پیشین جایگزین کنید و سرویس OC4J یا اگر از Application Serverاستفاده می کنید سرویس OPMN رو یکبار Stop-Start کنید.
خوب یادم نره بگم که مسیر فایلهای جاوا شما که باید بگردید فایل مورد نظر رو پیدا کنید در DeveloperSuiteHome\Forms\Java هست و یکی از فایهای ذکر شده frmall.jar هست.
نکته دیگه اینکه یکم باید جاوا بلد باشید..اما یقیین داشته باشید که این تنها راه حل شماست.چون من این کار رو کردم و دارم استفادش می کنم ولی به دلایل شغلی بیش از این نمی تونم توضیح بدم..شرمنده
و یه نکته دیگه این که این تنظیمات فقط برای American_America.AR8MSWIN1256 جواب می ده.
یه فرم نمونه هم براتون گذاشتم66651
موفق باشید..