π ΠΠ°ΠΊ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠΎΠΊΠΈ Π² Python? π ΠΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π³Π°ΠΉΠ΄
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ encode()
ΠΈ decode()
Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠΎΠΊΠΈ:
# ΠΠ°Π΄Π°Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ°
string = "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!"
# ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π±Π°ΠΉΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8
encoded_string = string.encode('utf-8')
# ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ cp1251
decoded_string = encoded_string.decode('cp1251')
print(decoded_string)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΡΠΎΠΊΠ° "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!" ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π² Π±Π°ΠΉΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° encode()
. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ cp1251 Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° decode()
. ΠΡΠ²ΠΎΠ΄ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΡΠΎΠΊΠ° "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!".
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠΎΠΊΠΈ Π² Python
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠΎΠΊΠΈ. Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ encode() ΠΈ decode()
Π Python ΡΡΡΠΎΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ encode()
ΠΈ decode()
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠΎΠΊΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ encode()
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Π² Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π°Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ, Π° ΡΡΠ½ΠΊΡΠΈΡ decode()
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΡΡΠΎΠΊΡ.
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ encode() ΠΈ decode()
string = "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!"
encoded_string = string.encode("utf-8") # ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² utf-8
decoded_string = encoded_string.decode("cp1251") # ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² cp1251
print(decoded_string) # Output: ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° str.encode() ΠΈ str.decode()
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ encode()
ΠΈ decode()
Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ.
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ str.encode() ΠΈ str.decode()
string = "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!"
encoded_string = string.encode("utf-8") # ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² utf-8
decoded_string = encoded_string.decode("cp1251") # ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² cp1251
print(decoded_string) # Output: ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ codecs
ΠΠΎΠ΄ΡΠ»Ρ codecs
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ. Π Π½Π΅ΠΌ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ encode()
ΠΈ decode()
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ.
import codecs
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ codecs
string = "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!"
encoded_string = codecs.encode(string, "utf-8") # ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² utf-8
decoded_string = codecs.decode(encoded_string, "cp1251") # ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² cp1251
print(decoded_string) # Output: ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° str.encode().decode()
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ encode()
ΠΈ decode()
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²ΡΠ·ΡΠ²Π°Ρ ΠΈΡ
Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠΎΠΊΠΈ.
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ str.encode().decode()
string = "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!"
encoded_string = string.encode("utf-8").decode("cp1251") # ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΡΠΎΠΊΠΈ Π² utf-8 ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π² cp1251
print(encoded_string) # Output: ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!
5. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ codecs
ΠΠΎΠ΄ΡΠ»Ρ codecs
ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ codecs.open()
, encode()
ΠΈ decode()
.
import codecs
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»Π°
input_file = codecs.open("input.txt", "r", "utf-8")
output_file = codecs.open("output.txt", "w", "cp1251")
for line in input_file:
encoded_line = line.encode("utf-8")
decoded_line = encoded_line.decode("cp1251")
output_file.write(decoded_line)
input_file.close()
output_file.close()
ΠΡΠ²ΠΎΠ΄
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ encode()
ΠΈ decode()
, ΠΌΠ΅ΡΠΎΠ΄Ρ str.encode()
ΠΈ str.decode()
, ΠΌΠΎΠ΄ΡΠ»Ρ codecs
ΠΈΠ»ΠΈ ΠΈΡ
ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.