អំពីកម្មវិធីនេះ
អស់រយៈពេលជាច្រើនឆ្នាំ ការិយាល័យកម្ពុជាវាយឯកសាររបស់ខ្លួនដោយពុម្ពអក្សរខ្មែរជំនាន់ចាស់ — Limon សម្រាប់របាយការណ៍អង្គការ និងសំណាល់សាលា ABC និង Khek សម្រាប់សារាចរក្រសួង និងការងារបោះពុម្ព។ ឯកសារដែលរក្សាទុកជាពុម្ពទាំងនោះ មិនមានអក្សរខ្មែរទាល់តែសោះ៖ វារក្សាទុកកូដអក្សរឡាតាំង ដែលបង្ហាញជាអក្សរខ្មែរបានក៏តែពេលពុម្ពត្រឹមត្រូវត្រូវបានដំឡើងប៉ុណ្ណោះ។ ចម្លងប្រយោគមួយចេញពីឯកសារបែបនោះថ្ងៃនេះ អ្នកនឹងបានឃ្លាដូចជា `sYsþI` ជំនួសឱ្យ «សួស្តី» — ស្វែងរកមិនបាន បកប្រែមិនបាន និងអានមិនចេញលើឧបករណ៍ដែលគ្មានពុម្ពនោះ។ ទំព័រនេះបម្លែងអត្ថបទជំនាន់ចាស់បែបនោះទៅជា Unicode ខ្មែរ — កូដដែលទូរស័ព្ទ កម្មវិធីរុករក និងគេហទំព័រសម័យថ្មីអានបាន — Limon ទៅ Unicode, ABC-Zwsp ទៅ Unicode និង Khek ទៅ Unicode ពីផ្ទាំងតែមួយ។ ជ្រើសកូដដោយខ្លួនឯង ឬទុកឧបករណ៍ជ្រើសលើ «ស្គាល់ដោយស្វ័យប្រវត្តិ»៖ ផ្លូវ Limon ទៅ Unicode ផ្លូវ ABC-Zwsp និងផ្លូវ Khek នីមួយៗអនុវត្តតារាងបៃរបស់ខ្លួន ហើយកម្មវិធីស្គាល់ជ្រើសតារាងដែលបកចេញជាខ្មែរពិតបំផុត។ អ្វីៗទាំងអស់ដំណើរការក្នុងកម្មវិធីរុករករបស់អ្នក — បិទភ្ជាប់អត្ថបទចាស់ ចុច «បម្លែង» រួចចម្លង ឬទាញយកលទ្ធផល។ អ្វីដែលវាមិនធ្វើ៖ វាមិនបកប្រែខ្លឹមសារ មិនបង្ហាញអត្ថបទក្នុងពុម្ពចាស់ និងមិនបម្លែង Unicode ត្រឡប់ទៅកូដចាស់វិញ — កម្មវិធីបម្លែង Unicode ទៅកូដចាស់ជាគូគ្រប់ទិសនោះ។ តួអក្សរដែលគ្មានក្នុងតារាងដែលបានជ្រើស ឆ្លងកាត់ដោយមិនផ្លាស់ប្ដូរ និងត្រូវបានរាប់ឱ្យអ្នក ដោយមិនទាយជំនួស។
របៀបដំណើរការ
ការចុច «បម្លែង» រត់មុខងារសុទ្ធមួយនៅក្នុងកម្មវិធីរុករករបស់អ្នក — convertLegacyToUnicode ក្នុង lib/khmer-legacy-converter/converter.ts — ជាមួយកូដដែលអ្នកបានជ្រើស។ ក្នុងរបៀបស្គាល់ដោយស្វ័យប្រវត្តិ ទំព័របកអត្ថបទរបស់អ្នកក្រោមតារាងទាំងបីជាមុន រួចវាយពិន្ទុថាលទ្ធផលមួយណាហាក់ជាខ្មែរពិតបំផុត៖ តារាងខុសបង្កើតជុំព្យាង្គដែលមិនអាចមាន ដូចជាស្ញ្ញាជើងបិទនឹងអក្សរដែលគ្មានរូបជើង ឬស្រៈអណ្ដែតដោយគ្មានព្យញ្ជន៍មូល ដូច្នេះតារាងដែលពិន្ទុខ្ពស់បំផុតជាធម្មតាជាតារាងត្រឹមត្រូវ។ ជំហានបម្លែងបន្ទាប់មក ដើរពេញអត្ថបទរបស់អ្នក ដោយផ្គូផ្គងជំពូកបៃវែងបំផុតដែលស្គាល់សិន — ពុម្ពចាស់ដាក់ស្ញ្ញាខ្មែរមួយចំនួនក្នុងការផ្គុំបៃពីរ ឬបី ដែលតារាងបៃតែមួយធ្វើឱ្យវង្វេង — បន្ទាប់មកទើបប្រើតារាងបៃតែមួយ។ បៃទាំងនោះបកចេញតាមលំដាប់បង្ហាញ ខណៈ Unicode ទាមទារលំដាប់ឡូជីខល ដូច្នេះជំហានរៀបលំដាប់ឡើងវិញ (reorder.ts: unicodeReorder) រៀបជុំស្ករមួយៗទៅតាមលំដាប់ដែល Unicode កំណត់ — អក្សរជើង ស្រៈ និងស្ញ្ញាផ្សេងៗចុះកន្លែងត្រឹមត្រូវសម្រាប់ការស្វែងរក។ តួអក្សរដែលតារាងមិនកំណត់ ឆ្លងកាត់ដោយមិនផ្លាស់ប្ដូរ និងបង្ហាញក្នុងប្លាករាប់តួអក្សរគ្មានក្នុងតារាងក្រោមលទ្ធផល។ អត្ថបទលើស ១០ KB បម្លែងក្នុង Web Worker ដើម្បីទំព័រនៅរលូន អត្ថបទតូចរត់លើខ្សែស្រឡាយមេ។ អត្ថបទរបស់អ្នកមិនចេញពីកម្មវិធីរុករកទេ — ទិន្នន័យបង្ហាញការប្រើប្រាស់ដែលផ្ញើទៅមានតែចំនួនរាប់ដូចជាប្រវែងអត្ថបទ និងចំនួនតួអក្សរគ្មានក្នុងតារាង មិនមែនខ្លឹមសារអត្ថបទទេ។
ករណីប្រើប្រាស់
- បើកឯកសារ .doc ឬ .pdf ចាស់ ហើយឃើញអក្សរវង្វេងដូចជា sYsþI bgb¥Ún — បិទភ្ជាប់អត្ថបទចាស់ ហើយទទួលបាន «សួស្តី បងប្អូន» ស្អាតត្រឡប់មកវិញ។
- បណ្ណារករម្នាក់ធ្វឌីជីថ្លក់បោះពុម្ពកម្ពុជាមុនឆ្នាំ ២០១០ ដែលឯកសារដើមជា Limon ហើយឃ្លាំងទិន្នន័យទាមទារអត្ថបទ Unicode។
- មន្ត្រីរាជការម្នាក់ផ្ទេរគំរូបែបបែនដែលកូដជា Khek ទៅប្រព័ន្ធឯកសារ Unicode សម័យថ្មី។
- អ្នកអភិវឌ្ឍដែលនាំចូល CSV ចាស់មួយដែលជួរឈ្មោះខ្មែររក្សាទុកជាបៃ Limon ត្រូវការ Unicode សម្រាប់សន្ទស្សន៍ស្វែងរកសម័យថ្មី។
- ក្រុមគេហទំព័រមួយផ្ទេរប្លក់សម័យ Limon ទៅ CMS បច្ចុប្បន្ន ដែលទាមទារ Unicode សម្រាប់ការស្ទាក់ចូលសន្ទស្សន៍ និងការបង្ហាញត្រឹមត្រូវ។
- អ្នកបកប្រែទទួលឯកសារប្រភពខ្មែរកូដ ABC-Zwsp ត្រូវការ Unicode ស្អាតសម្រាប់បិទភ្ជាប់ចូលឧបករណ៍បកប្រែ CAT។
- អ្នកស្រាវជ្រាវដំណើរការបណ្ដុំអត្ថបទសារព័ត៌មានខ្មែរទសវត្ស ១៩៩០–២០០០ ដែលអត្ថបទធ្វើតាមកូដ Limon ដើម។
គំរូបម្លែងដែលបានផ្ទៀងផ្ទាត់
| Encoding | Legacy text | Unicode Khmer |
|---|---|---|
| limon | sYsþI bgb¥Ún | សួស្តី បងប្អូន |
| limon | sMNYr nigcemøIy GMBI PasaExµr | សំណួរ និងចម្លើយ អំពី ភាសាខ្មែរ |
| abc-zwsp | sYsþI.bgbðÚn | សួស្តី បងប្អូន |
| abc-zwsp | qñaM.2026.Ex.11 | ឆ្នាំ ២០២៦ ខែ ១១ |
| khek | sYs¶I bgbíèn | សួស្តី បងប្អូន |
| khek | ekµg@kMBugeronGk§rExµr enAsalaeron | ក្មេងៗកំពុងរៀនអក្សរខ្មែរ នៅសាលារៀន |
សំណួរដែលគេសួរញឹកញាប់
តើអក្សរខ្មែរវង្វេងដូចជា sYsþI bgb¥Ún មានន័យថាអ្វីទៅ?
អត្ថបទនោះត្រូវបានវាយដោយពុម្ពខ្មែរជំនាន់ចាស់ដែលរក្សាទុកកូដអក្សរឡាតាំង ជំនួសឱ្យអក្សរខ្មែរពិត — បៃទាំងនោះជាខ្មែរក៏តែពេលពុម្ពត្រឹមត្រូវបកវាប៉ុណ្ណោះ។ បើមើលដោយគ្មានពុម្ពនោះ បៃនីមួយៗបង្ហាញជាតួអក្សរ Latin-1 របស់វា ដែលជាភាពវង្វេងដែលអ្នកឃើញ។ ឧបករណ៍នេះជំនួសជំពូកបៃនីមួយៗដោយអក្សរ Unicode ខ្មែរដែលពុម្ពនោះតំណាងឱ្យពិតប្រាកដ។
តើឧបករណ៍នេះគាំទ្រកូដចាស់ប្រភេទណាខ្លះ?
Limon, ABC-Zwsp និង Khek — កូដចាស់ទាំងបីដែលនៅប្រើច្រើនបំផុតសម្រាប់ឯកសារកម្ពុជា។ នីមួយៗមានតារាងបៃផ្ទាល់ខ្លួន ព្រោះពុម្ពទាំងនោះដាក់ស្ញ្ញាខ្មែរលើក្ដារចុចខុសគ្នា។ ការបម្លែងអត្ថបទ ABC-Zwsp ក្រោមតារាង Limon បង្កើតវង្វេងមួយប្រភេទទៀត ដែលជាមូលហេតុដែលឧបករណ៍ជ្រើសកូដ និងការស្គាល់ស្វ័យប្រវត្តិមានសារៈសំខាន់។
តើការស្គាល់ស្វ័យប្រវត្តិសម្រេចថាអត្ថបទខ្ញុំសរសេរក្នុងកូដណាដោយរបៀបណា?
វាបកទិន្នន័យរបស់អ្នកក្រោមតារាងទាំងបី រួចវាយពិន្ទុលទ្ធផលតាមរចនាសម្ព័ន្ធ៖ តើស្ញ្ញាជើងនីមួយៗស្ថិតលើព្យញ្ជន៍ដែលពិតជាមានរូបជើងឬទេ តើស្រៈមានព្យញ្ជន៍មូលឬទេ ហើយស្ញ្ញាដែលបង្កើតបានកម្រប៉ុណ្ណា។ ការបកដែលមានភាពជាខ្មែរពិតបំផុតឈ្នះ ហើយទំនុកចិត្តរបស់វាបង្ហាញក្រោមលទ្ធផល។ លើឃ្លាខ្លី ឬអត្ថបទដែលកូដច្រើនចែករំលែកតួអក្សរ ពិន្ទុអាចជិតគ្នា — កម្មវិធីស្គាល់នឹងរាយការណ៍មិនប្រាកដ ហើយអ្នកគួរជ្រើសកូដដោយខ្លួនឯង។
តើតួអក្សរដែលគ្មានក្នុងតារាងបម្លែងកើតអ្វីឡើង?
ពួកវាឆ្លងកាត់ដោយមិនផ្លាស់ប្ដូរ ហើយត្រូវបានរាប់ក្នុងប្លាក់ «តួអក្សរគ្មានក្នុងតារាង» ក្រោមលទ្ធផល — ឧបករណ៍មិនជំនួសតួអក្សរមិនស្គាល់ដោយការទាយទេ។ ការបើកប្លាក់នោះបង្ហាញតួអក្សរនៅសល់នីមួយៗជាមួយកូដព័ញ្ញ ដូច្នេះអ្នកឃើញថាវាជាអក្សរឡាតាំងលប ស្ញ្ញាកម្រដែលតារាងមិនគ្រប ឬអត្ថបទដែលមិនមែនជាកូដចាស់ពីដំបូង។
តើឧបករណ៍ផ្ញើអត្ថបទខ្ញុំទៅម៉ាស៊ីនមេឬទេ?
ទេ។ ការបម្លែងជាការគណនាសុទ្ធក្នុងកម្មវិធីរុករករបស់អ្នក — ទំព័រផ្ទុកតារាងស្ថិត ហើយអនុវត្តវានៅក្នុងមូលដ្ឋាន គ្មានការផ្ទុកឡើង គ្មានផ្លូវម៉ាស៊ីនមេ និងគ្មានការរក្សាទុកទេ។ ការហៅចេញតែមួយគឺព្រឹត្តិការណ៍ប្រើប្រាស់អនាមិកដែលផ្ទុកចំនួនរាប់ដូចជាប្រវែងអត្ថបទ និងចំនួនតួអក្សរគ្មានក្នុងតារាង — មិនមែនអត្ថបទដែលអ្នកបិទភ្ជាប់ ឬបង្កើតបានទេ។
តើខ្ញុំអាចបម្លែងឯកសារទាំងមូល ជំនួសឱ្យការបិទភ្ជាប់បានឬទេ?
មិនទាន់បានក្នុងកំណែនេះទេ — ផ្ទាំងទទួលតែអត្ថបទបិទភ្ជាប់ ហើយប៊ូតុងទាញយកសរសេរលទ្ធផលទៅឯកសារ .txt សម្រាប់អ្នករក្សាទុក។ ការផ្ទុកឯកសារឡើងជាការងារបន្តដែលបានគ្រោង។ សម្រាប់ឯកសារធំណាស់ អត្ថបទលើស ១០ KB នៅតែដំណើរការបាន៖ វាបម្លែងក្នុង Web Worker ដើម្បីទំព័រនៅរលូន។
តើលទ្ធផលជា Unicode តាមស្តង់ដារឬទេ? តើច្បាប់រៀបលំដាប់អក្សរខ្មែរដែរឬទេ?
បាទ/ចាស — កម្មវិធីបម្លែងចេញអក្សរតាមលំដាប់ឡូជីខលដែល Unicode កំណត់ មិនមែនលំដាប់បង្ហាញដែលពុម្ពចាស់រក្សាទុក។ អក្សរជើង ស្រៈ និងស្ញ្ញាផ្សេងៗត្រូវបានរៀបចូលទីតាំងតាមស្តង់ដារក្នុងជុំស្ករនីមួយៗ ដូច្នេះលទ្ធផលស្ទាក់ចូលសន្ទស្សន៍ ស្វែងរក និងបកតាមសំឡេងបានត្រឹមត្រូវ។ ខ្សែដែលនៅតែមើលមិនត្រឹមបន្ទាប់ពីបម្លែង ជាធម្មតាមានកំហុសវាយពីឯកសារដើម។
ហេតុអ្វីពាក្យអង់គ្លេស ឬលេខក្នុងអត្ថបទខ្ញុំក៏ប្ដូរតាម?
ពុម្ពចាស់ដាក់ស្ញ្ញាខ្មែរលើស្ទើរតែទាំងក្ដារចុច — អក្សរឡាតាំង លេខ និងស្ញ្ញាវាណាពុម្ភភាគច្រើន សុទ្ធតែជាកន្លែងស្ញ្ញា ដូច្នេះកម្មវិធីបម្លែងក៏បម្លែងពួកវាតាមដែរ។ ឯកសារដែលលាយពុម្ពឡាតាំងជាមួយពុម្ពខ្មែរ បាត់ព័ត៌មានពុម្ពនោះ ពេលចម្លងជាអត្ថបទធម្មតា។ បម្លែងតែផ្នែកខ្មែរ ឬបិទភ្ជាប់ម្ដងមួយប្រយោគ។
តើខ្ញុំអាចបម្លែង Unicode ខ្មែរត្រឡប់ទៅពុម្ពចាស់វិញបានឬទេ?
មិនមែនលើទំព័រនេះទេ — ឧបករណ៍នេះរត់តែមួយទិស ពីកូដចាស់ទៅ Unicode។ កម្មវិធីបម្លែង Unicode ទៅកូដចាស់ជាគូគ្រប់ទិសផ្ទុយ៖ វាផលិតលទ្ធផលបៃដែលការងារពុម្ពចាស់ត្រូវការ ហើយទាញយកបានជាឯកសារ .txt កូដ Windows-1252។ ប៊ូតុង «ប្ដូរទិស» លើផ្ទាំងភ្ជាប់ទៅវាដោយផ្ទាល់ ដោយបន្តការជ្រើសកូដរបស់អ្នក។
ហេតុអ្វីអត្ថបទដែលខ្ញុំបម្លែងរួច នៅតែមើលមិនត្រឹមក្នុងកន្លែងមួយចំនួន?
បញ្ហាពីរផ្សេងគ្នាមានរោគសញ្ញាដូចគ្នានេះ។ បើខ្សែខ្មែរទាំងអស់វង្វេង ការទាយកូដខុសហើយ — ជ្រើសពុម្ពដែលឯកសារប្រើពិតជំនួសឱ្យការស្គាល់ស្វ័យប្រវត្តិ។ បើមានតែចំណុចលាយៗមើលមិនត្រឹម — រង្វង់មូលចំណុច ឬស្ញ្ញាលើព្យញ្ជន៍ខុស — ការវាយដើមមានកំហុសដែលតារាងបានឆ្លងកាត់ដោយស្មោះ ដែលត្រូវការកែដោយដៃ មិនមែនតារាងផ្សេង។
ទិន្នន័យ និងភាពជាក់លាក់
ទំព័រនេះអនុវត្តតារាងស្ថិតទាំងបីដែលផ្ទុកក្នុង lib/khmer-legacy-converter/mappings/ ដែលបានសម្រេចពី fontdata.xml ក្នុងគម្រោង KhmerConverter — កម្មវិធីបម្លែងប្រភពបើកចំហដែលគំនិតផ្ដួចផ្ដើមផ្នែកទន់ខ្មែរ (KhmerOS) ថែរក្សាតាំងពីឆ្នាំ ២០០៦ សម្រាប់ Limon, ABC, Khek និងពុម្ពខ្មែរចាស់ផ្សេង។ ដោយសារការបម្លែងជាការគណនាក្នុងមូលដ្ឋានសុទ្ធ គ្មានប្រភពខាងក្រៅឱ្យចាស់ទេ — លទ្ធផលខុសមានន័យថាអត្ថបទដែលបិទភ្ជាប់មិនមែនជាកូដដែលបានជ្រើស មិនមែនទិន្នន័យចាស់។ តារាងទាំងនេះត្រូវបានធ្វើតេស្តដោយបណ្ដុំតេស្តបម្លែងវិញដែលមកជាមួយបណ្ណាល័យ។
ប្រភពព័ត៌មាន
- KhmerConverter — កម្មវិធីបម្លែងពុម្ពចាស់របស់ Khmer Software Initiative (តារាង fontdata.xml) — Khmer Software Initiative / KhmerOS (GitHub)
- Khmer — តារាងកូដ Unicode U+1780–U+17FF — Unicode Consortium
- អក្ខរក្រមខ្មែរ — អក្សរសាស្ត្រ និងកូដ Unicode — Wikipedia
- ទំព័រឧបករណ៍នេះផ្ទាល់ — InKhmer
មាតិកាត្រូវបានពិនិត្យឡើងវិញចុងក្រោយ ថ្ងៃទី 8 វិច្ឆិកា 2026