السلام عليكم ورحمة الله وبركاته
ماهي طريقة تحويل نص إلى ترميز آخر
مثال:
النص الأصلي هو
أبورنه
بعد الترميز
ط£ط¨ظˆط±ظ†ظ‡
ماهو هذا الترميز وماهي اسهل الطرق للتحويل له
وجزاكم الله خير
السلام عليكم ورحمة الله وبركاته
ماهي طريقة تحويل نص إلى ترميز آخر
مثال:
النص الأصلي هو
أبورنه
بعد الترميز
ط£ط¨ظˆط±ظ†ظ‡
ماهو هذا الترميز وماهي اسهل الطرق للتحويل له
وجزاكم الله خير
هل تحاول إخراجه في صفحة للعرض مثلاً؟
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
يوجد موضوع بهذا القسم من المنتدى يشرح كيفية التحويل من ترميز إلى آخر
سأبحث عنه وإذا وجدته سأضع الرابط
هذا الترميز ناتج عن تفكيك (قرائة) نص مرمز بـ utf-8 على أنه windows-1256
إذا كانت تتكلم عن php فيمكنك إصلاحه باستخدام:
iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text)أما إذا أردت أن تصلح ملفاً ما، فإليك هذا البريمج في جافا:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import javax.swing.*;
public class fixxxxer extends JFrame{
File f;
FileInputStream fis;
Charset Win1256 = Charset.forName("windows-1256");
Charset utf8 = Charset.forName("UTF-8");
JFileChooser fc = new JFileChooser();
JButton fcb = new JButton("تحديد الملف");
JTextArea t = new JTextArea();
JScrollPane sp = new JScrollPane(t);
public fixxxxer(){
t.setEditable(false);
this.getContentPane().add(fcb,BorderLayout.NORTH);
this.getContentPane().add(sp,BorderLayout.CENTER);
this.setSize(400,300);
this.setVisible(true);
fcb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int returnVal = fc.showOpenDialog(fixxxxer.this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
try {
f = fc.getSelectedFile();
fis = new FileInputStream(f);
} catch (Exception e) {
t.setText("خطأ في قرائة الملف");
}
}
byte b[] = new byte[(int) f.length()];
try {
fis.read(b);
} catch (Exception e) {
t.setText("خطأ في معالجة الملف");
}
ByteBuffer bb = ByteBuffer.wrap(b);
CharBuffer charBuffer = utf8.decode(Win1256.encode(utf8.decode(bb)));
t.setText(charBuffer.toString());
}
});
}
public static void main(String []args){
new fixxxxer();
}
}انا ابغى احول من العربي الصحيح الى هذا الترميز
انا ابغى ان اقوم بالترميز وليس الغيه
ومشكور وجزاك الله خير
هذا ليس بترميز ... هذا خطأ بقرائة الترميز كما قلت لك !
والطريقة أعلاه لإصلاحه.
أما إذا كان هدفك التشفير فلا أنصحك بهذا أبداً ! فهي طريقة ضعيفة !
على أي حال أظن أن الفكرة أصبحت واضحة، يمكنك ذلك باستخدام نفس التابع في php ونفس البرنامج، فقط احفط الملف المراد إصلاحع بترميز UTF-8 وغير السطر التالي:
CharBuffer charBuffer = utf8.decode(Win1256.encode(utf8.decode(bb)));
إلى:
CharBuffer charBuffer = Win1256.decode(bb);
اخوي بصراحه لجأت لهذه الطريقة لإنه يوجد لدي اكثر من موقع بحث مثل الياهو و غيره لا يتم البحث به إلا بهذه الطريقة
انا لدي موقع وارغب في وضع خانة خاصة بالبحث بالياهو يعني مجرد مربع نص وزر فقط
وعند كتابة الجملة يبحث في صفحة الياهو
عندما ابحث باللإنجليزي لا يوجد مشلكة
http://search.yahoo.com/search?p=aa
عندما ابحث بالعربي
http://search.yahoo....search?p=أبورنه
لا يبحث
ولكن إذا حولتا للترميز الذي ذكرت شاهد النتيجة
http://search.yahoo....?p=ط£ط¨ظˆط±ظ†ظ‡
اذا كان هناك طريقة أخرى
فذكروها لي مشكورين
--------------
اذا لم تعمل الروابط التي في الاعلى
انسخ هذا الرابط
http://search.yahoo.com/search?p=
واضف بعده
aa
أو
ط£ط¨ظˆط±ظ†ظ‡
تم تعديل هذه المشاركة بواسطة أبورنه في 1 ديسمبر 2009 في 13:23
هل المسألة صارت اصعب ..
طيب خلونا من البحث وخلونا بالترميز ..
اتمنى إجابتي للأهمية ولكم من جزيل الشكر
أخي هل جربت
iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text)؟؟؟؟؟؟
لآنها هي الحل الأمثل
أخوي جزاك الله خير
هل اكتبها بالطريقة هذه
<?
$text = "أبورنه";
iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text)
echo $text;
?>لانه يطلع لي رسالة خطأ سواء بالاباتشي على الجهاز او عند الرفع على الموقع
تم تعديل هذه المشاركة بواسطة أبورنه في 3 ديسمبر 2009 في 08:35
الحل باستخدام الدالة المذكورة ... وهذا وصفها:
string iconv ( string $in_charset , string $out_charset , string $str )
اقتباسهل اكتبها بالطريقة هذه
هذا يعتمد على الترميز الأساسي للنص وعلى الترميز المراد الحصول عليه.