هل من دالة او ظيفة جاهزة لتحويل سلسة رموز من UTF8الى windows
شكرا
MIRÖdÖ --> MIRODO
هل من دالة او ظيفة جاهزة لتحويل سلسة رموز من UTF8الى windows
شكرا
MIRÖdÖ --> MIRODO
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 30 يناير 2009 في 18:25
Utf8toAnsi(string)
لا يعمل اكود
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 30 يناير 2009 في 14:20
لقد عملت هذه الدالة على السريع كي يسكت عني مستعل االبرنامج
FUNCTION StrUrtfToNormal(iStrU:string):string;
VAR
vClientDS : TClientDataSet;
vchar:char;
i:integer;
BEGIN
Result:='';
vClientDS:= TClientDataSet.Create(nil);
TRY
vClientDS.FileName:='c:\Cspeciaux.xml';
vClientDS.Open;
For I:=1 to Length(istrU)do
begin
IF vClientDS.Locate('speciaux',iStrU,[loPartialKey]) THEN
begin
vchar:=vClientDS.FieldByName('normal').asstring[1];
iStrU:= StringReplace(iStrU ,iStrU,vchar,[rfReplaceAll, rfIgnoreCase]);
end;
end;
Result:= iStrU;
FINALLY
vClientDS.Free;
END;
END;
procedure TForm6.Button1Click(Sender: TObject);
begin
edit1.Text:=StrUrtfToNormal('ÀĤŭÁǾÂÃŔШ');
end;<?xml version="1.0" standalone="yes"?> <DATAPACKET Version="2.0"> <METADATA> <FIELDS> <FIELD attrname="speciaux" fieldtype="string" WIDTH="1"/> <FIELD attrname="normal" fieldtype="string" WIDTH="1"/> </FIELDS> <PARAMS CHANGE_LOG="1 0 4 2 0 4 3 0 4"/> </METADATA><ROWDATA> <ROW RowState="4" speciaux="À" normal="A"/> <ROW RowState="4" speciaux="Á" normal="A"/> <ROW RowState="4" speciaux="Â" normal="A"/> <ROW RowState="4" speciaux="Ã" normal="A"/> <ROW RowState="4" speciaux="Ä" normal="A"/> <ROW RowState="4" speciaux="Å" normal="A"/> <ROW RowState="4" speciaux="@" normal="A"/> <ROW RowState="4" speciaux="â" normal="A"/> <ROW RowState="4" speciaux="ã" normal="A"/> <ROW RowState="4" speciaux="ä" normal="A"/> <ROW RowState="4" speciaux="å" normal="A"/> <ROW RowState="4" speciaux="?" normal="A"/> <ROW RowState="4" speciaux="ß" normal="B"/> <ROW RowState="4" speciaux="฿" normal="B"/> <ROW RowState="4" speciaux="β" normal="B"/> <ROW RowState="4" speciaux="в" normal="B"/> <ROW RowState="4" speciaux="Ć" normal="C"/> <ROW RowState="4" speciaux="Č" normal="C"/> <ROW RowState="4" speciaux="Ċ" normal="C"/> <ROW RowState="4" speciaux="ç" normal="C"/> <ROW RowState="4" speciaux="ĉ" normal="C"/> <ROW RowState="4" speciaux="č" normal="C"/> <ROW RowState="4" speciaux="ċ" normal="C"/> <ROW RowState="4" speciaux="ς" normal="C"/> <ROW RowState="4" speciaux="Ð" normal="D"/> <ROW RowState="4" speciaux="ď" normal="D"/> <ROW RowState="4" speciaux="đ" normal="D"/> <ROW RowState="4" speciaux="ð" normal="D"/> <ROW RowState="4" speciaux="Ħ" normal="H"/> <ROW RowState="4" speciaux="ħ" normal="H"/> <ROW RowState="4" speciaux="ћ" normal="H"/> <ROW RowState="4" speciaux="Ќ" normal="K"/> <ROW RowState="4" speciaux="ќ" normal="K"/> <ROW RowState="4" speciaux="Ŏ" normal="O"/> <ROW RowState="4" speciaux="Ō" normal="O"/> <ROW RowState="4" speciaux="Ő" normal="O"/> <ROW RowState="4" speciaux="ō" normal="O"/> <ROW RowState="4" speciaux="ö" normal="O"/> <ROW RowState="4" speciaux="ǿ" normal="O"/> <ROW RowState="4" speciaux="σ" normal="O"/> <ROW RowState="4" speciaux="Ŕ" normal="R"/> <ROW RowState="4" speciaux="Ŗ" normal="R"/> <ROW RowState="4" speciaux="Ř" normal="R"/> <ROW RowState="4" speciaux="ŕ" normal="R"/> <ROW RowState="4" speciaux="ŗ" normal="R"/> <ROW RowState="4" speciaux="ř" normal="R"/> <ROW RowState="4" speciaux="я" normal="R"/> <ROW RowState="4" speciaux="Ś" normal="S"/> <ROW RowState="4" speciaux="Ş" normal="S"/> <ROW RowState="4" speciaux="Š" normal="S"/> <ROW RowState="4" speciaux="ś" normal="S"/> <ROW RowState="4" speciaux="ŝ" normal="S"/> <ROW RowState="4" speciaux="š" normal="S"/> <ROW RowState="4" speciaux="ş" normal="S"/> <ROW RowState="4" speciaux="Ţ" normal="T"/> <ROW RowState="4" speciaux="Ť" normal="T"/> <ROW RowState="4" speciaux="Ŧ" normal="T"/> <ROW RowState="4" speciaux="ţ" normal="T"/> <ROW RowState="4" speciaux="ť" normal="T"/> <ROW RowState="4" speciaux="ŧ" normal="T"/> <ROW RowState="4" speciaux="т" normal="T"/> <ROW RowState="4" speciaux="Ũ" normal="U"/> <ROW RowState="4" speciaux="Ū" normal="U"/> <ROW RowState="4" speciaux="Ŭ" normal="U"/> <ROW RowState="4" speciaux="Ů" normal="U"/> <ROW RowState="4" speciaux="Ű" normal="U"/> <ROW RowState="4" speciaux="Ų" normal="U"/> <ROW RowState="4" speciaux="Ц" normal="U"/> <ROW RowState="4" speciaux="ũ" normal="U"/> <ROW RowState="4" speciaux="ū" normal="U"/> <ROW RowState="4" speciaux="ŭ" normal="U"/> <ROW RowState="4" speciaux="ů" normal="U"/> <ROW RowState="4" speciaux="ű" normal="U"/> <ROW RowState="4" speciaux="ų" normal="U"/> <ROW RowState="4" speciaux="ϋ" normal="U"/> <ROW RowState="4" speciaux="μ" normal="U"/> <ROW RowState="4" speciaux="ω" normal="W"/> <ROW RowState="4" speciaux="Ψ" normal="W"/> <ROW RowState="4" speciaux="Ш" normal="W"/> <ROW RowState="4" speciaux="Щ" normal="W"/> <ROW RowState="4" speciaux="ш" normal="W"/> </ROWDATA></DATAPACKET>
لكني متاكد من وجود API
ونوز تقوم بهذا العمل
ارجو ا لمساعدة
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 30 يناير 2009 في 18:32
ياسي عبد العالي انظر هذا الرابط يمكنه ان يساعدك إن عرفت كيف تعيد صياغته
http://delphi.developpez.com/faq/?page=typechaine#convertirhtmlspeciaux
تشكر ياصحبي
لكن تقربا نفس الذي عملته الاختلاف ال حيد اني استعلت قائمة دينامكية تتمثل في تسجيلات موجودة في ملف xml
لكني متاكد من وجود API
اعيطيني بعض الوقت ياعبد العالي سوف احاول إنشاء دالة لتساعدك على ذلك
اخي عبد العالي جرب هذه
function ConvertIt( S : string ): string; var n : Integer; begin result := S; for n := 1 to Length(result) do begin case result[n] of #225: result[n] := #160; // á #193: result[n] := #181; // Á #233: result[n] := #130; // é #201: result[n] := #144; // É #237: result[n] := #161; // í #205: result[n] := #146; // Í #243: result[n] := #162; // ó #211: result[n] := #224; // Ó #246: result[n] := #148; // ö #214: result[n] := #153; // Ö #245: result[n] := #139; // ő #213: result[n] := #138; // Ő #250: result[n] := #163; // ú #218: result[n] := #233; // Ú #252: result[n] := #129; // ü #220: result[n] := #154; // Ü #251: result[n] := #251; // ű #219: result[n] := #235; // Ú end; end; end;
تم تعديل هذه المشاركة بواسطة mohfa في 30 يناير 2009 في 19:17
الله يرحم والديك اخي محمد.
لكن ان ابحث عن الجاهز اي دالو من دوال windows
على العموم مشكور .
ننتضر منك البدا في مشروعك ولو بدراسة التحليلية
أخي زكري هل تفيد هذه الروابط
http://koti.mbnet.fi/akini/delphi/urldecodeutf8/
http://msdn.microsoft.com/en-us/library/sy...xt.decoder.aspx
I'm Away For Sometimes
I'll Finish My Works
Come Back Soon
More Study > More Search > More Try > More Learning > Great Success
يمنك استخدام النوع Widestring لعمل التحويل من والي ascii، بطريقة سهلة وبسيطة لكن في حالة كان اللغة تحتوي على حروف غير معرفة
في الاسكي سوف تظهر بشكل علامات استفهام لذا يجب عليك تحديد code page للغة المستخدمة المراد التحويل منها وذلك بإستخدام API مثل WideCharToMultiByte
function WideStringToString(const ws: WideString; codePage: Word): AnsiString; var l: integer; begin if ws = '' then Result := '' else begin l := WideCharToMultiByte(codePage, WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR, @ws[1], - 1, nil, 0, nil, nil); SetLength(Result, l - 1); if l > 1 then WideCharToMultiByte(codePage, WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR, @ws[1], - 1, @Result[1], l - 1, nil, nil); end; end; procedure TForm1.FormCreate(Sender: TObject); var X : WideString; begin X := 'MIRÖdÖ '; ShowMessage(WideStringToString(X,1253)); end;
انا استخدمت كود 1253 وهو للغة اليونانية وظهرت الأحرف بشكل صحيح، لذا عليك تغير الكود اللى المستخدمة (لا اعرف اذا كان الكلمة فرنسية ام يونانية)
المثال موجود في هذه الصفحة http://swissdelphicenter.ch/en/showcode.php?id=1692 للتحويل من والى UC
لكني انا استخدمت سابقاً في احد المشاريع مكتبة DIConverters (حسب ما اذكر كان المستخدم اللغة التايلاندية) وهي سهلة الاستخدام ومجانية
http://www.yunqa.de/delphi/doku.php/produc...onverters/index
لا تحزن:
إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.
لا تحزن:
فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.
باؤك الله فيك استاذي محمد لكن http://register.compubase.net/
في هذا الموقع الذي انا بصدد اجارا تحديثات فيه و نستعمل هذه القاءمة من اللغات و جاري الان عملبة اطافة العربية و غيرها .
لكن لا عليك وجدت الحل ان شاء الله غدا سارفقه .