سلام عزیزان
یک دستوری نیاز داریم یک فایلی که موجود هست رو انکودینگش رو به utf-8 تغییر بده . فایل ها زیاد هست نمیدونیم کدوم انکودینگش چی هست شاید utf-8 باشن شاید ansi یا ... . فایل های متنی هستند
سلام عزیزان
یک دستوری نیاز داریم یک فایلی که موجود هست رو انکودینگش رو به utf-8 تغییر بده . فایل ها زیاد هست نمیدونیم کدوم انکودینگش چی هست شاید utf-8 باشن شاید ansi یا ... . فایل های متنی هستند
عرض سلام و احترام :
با استفاده از این کد درون htaccess هر چیزی که به صورت text/plain یا text/html باشد را انکدینگش را بر روی utf8 قرار خواهد داد :
اگر می خواهید فقط بر روی یک سری پسوند اعمال شود از این دستور استفاده کنید :کد:AddDefaultCharset utf-8 php_value default_charset "UTF-8"
کد:AddCharset utf-8 .html .css .js .xml .json .rss
ویرایش توسط shahinmq : March 7th, 2017 در ساعت 02:39
php تغییر انکدودینگ نداره. فقط میتونی نحوه نمایش رو به خروجی مشخص کنی.
جشنواره وب ایران یا جشنواره معرفی دوستان!!!
کتابخانهای به نام iconv در php وجود دارد که قابلیت تغییر انکودینگ رشتهها را دارد.
این کتابخانه در اصل در لینوکس وجود دارد. با bash میتونید یک حلقه برای تبدیل انکودینگ همهی فایلها بنویسید.
کد:iconv -f WINDOWS-1256 -t UTF-8 input.php --output output.php
- امضاء این کاربر به دَلیل نَقض قَوانین سایت ، توسُطِ مُدیر حَذف شُده است.
- جَهَتِ مُطالِعه قَوانین ، این قِسمت کلیک کُنید.
بله تمام مطالب موجود در نت مربوط به این کتابخانه + mbstring رو خوندم ولی متاسفانه نتونستم با اینها کدینگ فایل های ascii رو به utf-8 تغییر بدم . فایل هایی که در ادیتور cpanel با این کدینگ باز میشن ANSI_X3.110-1983
چند روز هست که کل مقالات انگلیسی رو دارم میخونم ولی راه حلی در لینوکس نداره متاسفانه این موضوع ولی در ویندوز به راحتی میشه تغییر داد این کدینگ رو به utf-8
معمولا استفاده از iconv در php برای تغییر انکودینگ «فایل» پیشنهاد نمیشه.
برای فایلها بهتر است از ترمینال دستور رو وارد کنید. فقط لازم هست نوع انکودینگ فعلی درست وارد شود.
اگر تعداد فایلها کم هست هم میتونید با notepad++ یا sublime text 2 انکودینگها رو تغییر بدید و ذخیره کنید. و برای فایلها زیاد شاید بشود چیزی مثل ماکرو طراحی کرد که خودکار انجام دهد.
- امضاء این کاربر به دَلیل نَقض قَوانین سایت ، توسُطِ مُدیر حَذف شُده است.
- جَهَتِ مُطالِعه قَوانین ، این قِسمت کلیک کُنید.
متاسفانه تعداد فایل ها به شدت بالا هست . حدود 200 هزار فایل یا بیشتر برای همین شدیدا دنبال راهی برای این موضوع هستم که خودکار باشه و مستقیم روی سرور خودم انجام بشه چون کار های دیگه ای هم قرار هست بعد از تغییر انکودینگ روی فایل ها انجام بشه . در مورد ترمینال باز میشه به php متصلش کرد اگر بفرمایید راهش رو ممنون میشم
در مورد ماکرو هم ممنون میشم یک توضیح کوتاهی بفرمایید
ویرایش توسط hoka : March 8th, 2017 در ساعت 18:56
یک فایل ایجاد کن که حاوی یک حلقه باشه و دونه دونه فایل های php موجود رو باز کنه و در ابتدای اونا کد زیر قرار بده و بعد مجدد سیوشون کنه
کد PHP:
<?php header('Content-type: text/plain; charset=utf-8'); ?>
پروردگارا مرا فهم ده:: تا متوقع نباشم. دنیا و مردمانش باید مطابق میل من رفتار کنند.
اگر به شل سرور دسترسی دارید با هر زبانی یا حتی خود بَش میتونید یک حلقه بنویسید که این کار رو انجام بده.
دستورش را هم در پست ۴ نوشتم.
ابتدا همین دستور را برای یک فایل اجرا کنید و ببینید تبدیل درست انجام میشود یا خیر. (البته تصور میکنم به جای windows-1256 باید ANSI باشد).
در مورد ماکرو منظورم رکورد کردن عملیات انجام تغییر انکودینگ در ادیتور بود. برنامههایی هستند که رکورد میکنند و تکرار میکنند.
http://www.mouserecorder.com
- امضاء این کاربر به دَلیل نَقض قَوانین سایت ، توسُطِ مُدیر حَذف شُده است.
- جَهَتِ مُطالِعه قَوانین ، این قِسمت کلیک کُنید.
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)