Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ QTextBrowser ΠΈΠ»ΠΈ Qt Assistant ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ Windows HTML Help ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Internet Explorer ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡ Qt QProcess ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ActiveQt. ΠΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ X11 ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠ³ Π±Ρ ΡΠΎΡΡΠΎΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² HTML ΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ QProcess. Π Mac OS X ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Apple Help ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Qt Assistant.
ΠΠ° ΡΡΠΎΠΌ ΠΌΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°ΡΡΡ II. Π ΡΠ°ΡΡΠΈ III ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Qt. ΠΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘++ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΡΠ°ΡΡΠΈ II, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π² Π½ΠΎΠ²ΡΡ Π΄Π»Ρ Π²Π°Ρ ΠΎΠ±Π»Π°ΡΡΡΡ .
Π§Π°ΡΡΡ III. Advanced Qt
ΠΠ»Π°Π²Π° 17. ΠΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠΎΠΌΠ΅ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ², Qt 4 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΈΡΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ:
β’ Qt ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Unicode Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΈ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ . Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅;
β’ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Qt ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Π½Π΅Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Π·Π°ΠΏΠΈΡΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ Π°ΡΠ°Π±ΡΠΊΠΎΠΉ, ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠΉ, ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ΠΉ, ΠΈΠ²ΡΠΈΡΠΎΠΌ, ΡΠΏΠΎΠ½ΡΠΊΠΎΠΉ, ΠΊΠΎΡΠ΅ΠΉΡΠΊΠΎΠΉ, ΡΠ°ΠΉΡΠΊΠΎΠΉ ΠΈ Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΠ½Π΄ΠΈΠΈ;
β’ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Qt ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠ°ΠΊ Π°ΡΠ°Π±ΡΠΊΠΈΠΉ ΠΈ ΠΈΠ²ΡΠΈΡ;
β’ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°. Π’Π°ΠΊΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ QLineEdit ΠΈ QTextEdit, Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° ΠΈΡ ΡΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ; Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π²Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π Qt ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ: Π²ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ tr() (ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ ) ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ Qt Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π½Π° ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ. Qt ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈΠ»ΠΈΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Qt Linguist ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠΎΠ². Qt Linguist Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ lupdate ΠΈ lrelease, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ, Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π² Qt, Ρ ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. Π Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Qt ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
Π Π°Π±ΠΎΡΠ° Ρ Unicode
Unicode ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΌΠΈΡΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ. Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Unicode Π»Π΅ΠΆΠΈΡ ΠΈΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² 16 Π±ΠΈΡ, Π° Π½Π΅ 8, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 65 000 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ 256[8]. Unicode ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄Ρ ASCII ΠΈ ISO 8859-1 (Latin-1) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Ρ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π³Π»ΠΈΠΉΡΠΊΠ°Ρ Π±ΡΠΊΠ²Π° Β«ΠΒ» ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x41 Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Ρ ASCII, Latin-1 ΠΈ Unicode, Π° Π±ΡΠΊΠ²Π° Β«ΠΒ» ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0xD1 Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Ρ Latin-1 ΠΈ Unicode. ΠΠ»Π°ΡΡ Qt QString Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» QString ΠΈΠΌΠ΅Π΅Ρ 16-Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠΈΠΏ QChar, Π° Π½Π΅ 8-Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠΈΠΏ char. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΡΡΠΎΠΊΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«ΠΒ»:
str[0] = 'A';
str[0] = QChar(0x41);
ΠΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Latin-1, Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Latin-1 ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ:
str[0] = 'C';
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ, Ρ ΠΎΡΠΎΡΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
str[0] = QChar(0xD1);
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Unicode Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΅Π³ΠΎ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠΏΠΈΡΠ½Π°Ρ Π±ΡΠΊΠ²Π° Β«ΡΠΈΠ³ΠΌΠ°Β» Π³ΡΠ΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ° («Σ») ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π²Π°Π»ΡΡΡ Π΅Π²ΡΠΎ (Β«β¬Β»):
str[0] = QChar(0x3A3);
str[0] = QChar(0x20AC);
ΠΡΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ΄Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ Unicode, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΡΠΈ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://www.unicode.org/standard/. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Latin-1, Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ; Π½ΠΎ Qt ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π²ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Qt ΡΡΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
Π’Π΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π² Qt 4 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°ΠΏΠΈΡΠΈ: Π°ΡΠ°Π±ΡΠΊΡΡ, ΠΊΠΈΡΠ°ΠΉΡΠΊΡΡ, ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ΡΠΊΡΡ, Π³ΡΠ΅ΡΠ΅ΡΠΊΡΡ, ΠΈΠ²ΡΠΈΡ, ΡΠΏΠΎΠ½ΡΠΊΡΡ, ΠΊΠΎΡΠ΅ΠΉΡΠΊΡΡ, Π»Π°ΠΎΡΡΠΊΡΡ, Π»Π°ΡΠΈΠ½ΡΠΊΡΡ, ΡΠ°ΠΉΡΠΊΡΡ ΠΈ Π²ΡΠ΅ΡΠ½Π°ΠΌΡΠΊΡΡ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ 4.1 Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ X11 Ρ Fontconfig ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ·ΡΠΊΠΈ: Π±Π΅Π½Π³Π°Π»ΡΡΠΊΠΈΠΉ, Π΄Π΅Π²Π°Π½Π°Π³Π°ΡΠΈ, Π³ΡΠΉΠ°ΡΠ°ΡΠΈ, Π³ΡΡΠΌΡΡ ΠΈ, ΠΊΠ°Π½Π½Π°Π΄Π°, ΠΊΡ ΠΌΠ΅ΡΡΠΊΠΈΠΉ, ΠΌΠ°Π»Π°ΠΉΡΠΊΠΈΠΉ, ΡΠΈΡΠΈΠΉΡΠΊΠΈΠΉ, ΡΠ°ΠΌΠΈΠ»ΡΡΠΊΠΈΠΉ, ΡΠ΅Π»ΡΠ³Ρ, ΡΡ Π°Π°Π½Π° (Π΄ΠΈΠ²Π΅Ρ ΠΈ) ΠΈ ΡΠΈΠ±Π΅ΡΡΠΊΠΈΠΉ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ X11, Π° ΠΌΠΎΠ½Π³ΠΎΠ»ΡΡΠΊΠΈΠΉ ΠΈ ΡΠΈΠ½Ρ Π°Π»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² Windows XP. ΠΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠΈΡΡ, Qt ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ΅ΠΊΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Π ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΌΠΎΠ³ΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Qt ΡΠ΅ΠΊΡΡ Π½Π° ΡΡΠΈΡ ΡΠ·ΡΠΊΠ°Ρ .
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ QChar Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ char. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° QChar Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ unicode(). ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ASCII ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° QChar (Π² Π²ΠΈΠ΄Π΅ char) Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ toLatin1(). ΠΠ»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Latin-1, ΡΡΠ½ΠΊΡΠΈΡ toLatin1() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ '\0'.
ΠΡΠ»ΠΈ Π½Π°ΠΌ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ ASCII ΠΈΠ»ΠΈ Latin-1, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ <cctype>), ΠΊΠ°ΠΊ isalpha(), isdigit() ΠΈ isspace(), Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ toLatin1() Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈβΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° QChar Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Unicode. Π ΡΠ°ΠΊΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΊΠ»Π°ΡΡΠ° QChar ΠΎΡΠ½ΠΎΡΡΡΡΡ isPrint(), isPunct(), isSpace(), isMark(), isLetter(), isNumber(), isLetterOrNumber(), isDigit(), isSymbol(), isLower() ΠΈ isUpper(). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π° ΡΠΈΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΡ Π±ΡΠΊΠ²Ρ:
if (ch.isDigit() || ch.isUpper())
β¦
ΠΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π»ΡΠ±ΡΡ Π°Π»ΡΠ°Π²ΠΈΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ, Π³ΡΠ΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ.
Π‘ΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Qt, Π³Π΄Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΏΠ° QString. Qt ΡΠ°ΠΌ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΅Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π½Π°Π΄ΠΎ Π±ΡΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈ ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ QTextStream ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ 8-Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ (ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ QTextCodec::codecForLocale()), ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ»Ρ ΡΡΡΠ°Π½ ΠΠΌΠ΅ΡΠΈΠΊΠΈ ΠΈ ΠΠ°ΠΏΠ°Π΄Π½ΠΎΠΉ ΠΠ²ΡΠΎΠΏΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Latin-1.
ΠΡΠ»ΠΈ ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π°
stream.setCodec("UTF-16");
stream.setGenerateByteOrderMark(true);
Π΄ΠΎ Π½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΈΡΠΈ Π² ΠΏΠΎΡΠΎΠΊ QTextStream. ΠΠ°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ UTF-16, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ 16-Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ² Unicode, 0xFFFE), ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Unicode ΠΈ Π½Π° ΠΏΡΡΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ². Π€ΠΎΡΠΌΠ°Ρ UTF-16 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΡΡΠΎΠΊ QString, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode ΡΡΡΠΎΠΊ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ UTF-16 ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ ASCII, Π² ΡΠΎΡΠΌΠ°ΡΠ΅ UTF-16, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π·Π°ΠΉΠΌΠ΅Ρ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.