در مورد utf-32
که به دلیل اینکه هر کاراکتر ۳۲ بیت هست مثل رشتهای از کاراکترهای معمولی هست و میشه این کار و به راحتی انجام داد.
در مورد utf-8
و utf-16
هم بله میشه به طوری از اول به آخر یا از آخر به اول حرکت کرد. با این تفاوت که نمیشه مثل utf-32
دسترسی تصادفی داشت. مثلاً نمیشه گرفت کاراکتر ۴ ام در بایتهای ۱۶ تا ۲۰ هست.
در این دو پیادهسازی باید کاراکتر به کاراکتر خوند تا به کاراکتر مورد نظر رسید. برای برعکس خوندن از آخر به اول هم این دو پیادهسازی به صورتی طراحی شدهاند که این کار امکانپذیر میشه. مثلاً برای utf-8
از آخر به اول این طور میخونیم
یک بایت رو میخونیم اگه بیت اولاش 0
بود یعنی یک کاراکتر ۸ بیتی utf-8
هست.
0xxxxxxx
بنابراین ۸ بیت میریم قبل و دوباره بایت اول رو میخونیم. در صورتی که بیت اول ۱ و بیت دوم 0
بود یعنی یک کاراکتر غیر ۸ بیتی داریم. بایت بعدی رو میخونیم. اینقدر این کار و انجام میدیم که به بایتی برسیم که حداقل دو بیت اولاش 11
باشه.
10xxxxxx-10xxxxxx-11xxxxxx
بنابراین یک کاراکتر ۳ بایتی داریم.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)