Tim Buckwalter's notation is a one-to-one transliteration of the graphemes of the Arabic script using lower ASCII characters only. This system is very popular in Natural Language Processing, however, there are limits to its applicability due to numerous non-alphabetic characters involved.
The XML-friendly variant of the notation replaces codes
I, respectively. In this implementation, the
considers both of these conventions and converts from them, while the
encode function produces the XML-friendly notation only.
Encode::Arabic::Buckwalter in Perl: http://search.cpan.org/dist/Encode-Arabic/lib/Encode/Arabic/Buckwalter.pm