PowerShell дахь mysqldump нь мэдээллийн санг экспортлохдоо латин бус тэмдэгтүүдийг гэмтээдэг (ШИЙДСЭН)


mysqldump нь мэдээллийн сан болон хүснэгтийн нөөцлөлт үүсгэх MySQL хэрэгсэл юм. Вэб интерфэйсийг санал болгодог phpMyAdmin-ээс ялгаатай нь PHP болон Apache зэрэг завсрын хувилбаруудын хязгаарлалтаас шалтгаалан удаашралтай хэрэглүүр бөгөөд mysqldump нь илүү үр дүнтэй хэрэгсэл юм. маш том өгөгдлийг нөөцлөх хязгаарлалт.

Гэхдээ Windows дээр mysqldump нь зарим нэг нюанстай байдаг. PowerShell-ийн кодчилолтой ажиллах онцлогоос шалтгаалан латин бус бүх тэмдэгтүүд экспортлогдсон мэдээллийн санд эвдэрч болзошгүй. Энэ асуудал CMD-д харагдахгүй байгаа ч Windows-ийн сүүлийн хувилбарууд PowerShell-ийг анхдагч байдлаар ашигладаг тул энэ асуудал нь Windows дээрх мэдээллийн санг нөөцлөхийн тулд mysqldump-г ажиллуулдаг бүх хэрэглэгчдэд хамаатай.

PowerShell 7 дээр гүйцэтгэсэн дараах тушаал:


.\mysqldump.exe -u root --all-databases > all-databases_ps7.sql

UTF-8 кодлогдсон all-database_ps7.sql файлыг үүсгэдэг бөгөөд үүнд бүх MySQL мэдээллийн санг mysqldump ашиглан экспортлох болно (нөөцлөх зорилгоор). Гэхдээ эдгээр мэдээллийн санд бүх латин бус тэмдэгтүүд нөхөж баршгүй эвдрэх болно!

Энэ нь кирилл үсгийн оронд иймэрхүү зүйл болно.

'╨Р╤А╨▒╨╕╤В╤А╨░╨╢╨╜╤Л╨╣ ╨┐╤А╨╛╤Ж╨╡╤Б╤Ж╨╡╤Б╤Б: ⤡╕Г: ⤡╕Г ╨╕ ╨║/╨Ъ.╨Ь. ╨Р╤А╤Б╨╗╨░╨╜╨╛╨▓, ╨Ф.╨е. ╨Т╨░╨╗╨╡╨╡╨▓, ╨а.╨Э. ╨У╨╕╨╝╨░╨╖╨

Энэ асуудлаас зайлсхийхийн тулд mysqldump-г --result-file сонголттой ашиглана уу. Дараах тушаал нь мэдээллийн санг зөв кодчилолоор хадгалах болно.


.\mysqldump.exe -u root --all-databases --result-file=all-databases.sql

Та кодчиллын асуудлыг засахын тулд дараах хоёр командын бүтцийг ашиглаж болно.


[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("UTF-8")
.\mysqldump.exe -u root --all-databases > all-databases.sql