GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengubah pengkodean yang digunakan server SFTP saya?

Catatan awal:

  • sftp harus gunakan UTF-8 sebagai pengkodean nama file (misalnya, lihat di sini sebagai referensi). Namun, ada klien dan server yang tidak mengikuti persyaratan tersebut dan melanggar spesifikasi, yang mungkin menjadi penyebab masalah Anda.

  • Anda menulis:"Perhatikan bahwa saya telah berkomentar:AcceptEnv LANG LC_*. Menurut di sini, ini berarti server tidak akan mengizinkan klien untuk meneruskan variabel lingkungan lokal."

    Mungkin ada kesalahpahaman tentang bagaimana ini bekerja dan apa manfaatnya. Setiap kali dua mesin berkomunikasi, mereka harus menggunakan format data yang sama. Misalnya, VisualCron menempatkan nama file yang dikodekan sebagai ISO 8859-1 ke dalam aliran byte yang dikirimkannya ke server Ubuntu, tetapi Anda memaksa server Ubuntu untuk menginterpretasikan aliran byte yang masuk (nama file) seolah-olah dikodekan dalam UTF- 8. Itu tidak akan menyelesaikan masalah, tetapi menyebabkan mereka.

Setelah mengatakan ini:

Saya pertama-tama akan mencoba mencari tahu di mana tepatnya masalah itu muncul. Saya sangat berasumsi bahwa Anda memiliki akses SSH atau bahkan akses fisik (keyboard) ke server Ubuntu. Lalu

  • Periksa apakah lokal en_US.UTF-8 diinstal pada server Ubuntu sama sekali. Harap dicatat bahwa hanya mengatur LC_ dan LANG variabel lingkungan tidak instal lokal.

    Sebagai gantinya, Anda akan menginstal lokal selama instalasi O/S atau dengan sesuatu seperti dpkg-reconfigure locales (di debian - saya tidak tahu Ubuntu).

  • Jika menggunakan SSH, pastikan software terminal SSH Anda (mis. Putty) menggunakan enkode yang sama dengan server.

  • Kemudian, langkah yang paling penting:Menggunakan terminal SSH Anda, secara manual buat file dengan nama bermasalah di direktori masing-masing sehingga klien sftp di laptop Windows Anda dapat melihatnya.

    Misalnya, kembali ke pertanyaan Anda, Anda dapat membuat file dengan nama Liège.txt di /tickets Anda direktori (touch /tickets/Liège.txt ). Sekali lagi menggunakan terminal SSH Anda, periksa kembali dengan hati-hati apakah nama file muncul dengan benar ketika Anda membiarkan Ubuntu mencantumkan file di direktori itu (ls -al /tickets ).

  • Sekarang gunakan klien sftp di laptop Windows Anda dan periksa apakah klien mengunduh file yang baru dibuat dengan benar.

    Jika ini berhasil, itu berarti masalah Anda muncul saat VisualCron mentransfer file ke server Ubuntu. Jika tidak berhasil, masalahnya ada di antara laptop Windows Anda dan server Ubuntu.

Dalam kedua kasus tersebut, ada alat yang dapat membantu Anda menganalisis situasi.

Misalnya, Anda dapat memperoleh wawasan dari bermain-main dengan convmv, yang dapat mengonversi nama file dari satu penyandian ke penyandian lainnya. Khususnya, Anda dapat mengonversi penyandian nama file Anda dari UTF-8 ke UTF-8 . Ketika Anda melakukannya dan Anda yakin bahwa nama file sudah dikodekan dalam UTF-8, itu tidak boleh berubah selama konversi itu.

Anda mungkin juga ingin melihat chardet, yang merupakan pustaka Python yang mencoba menebak penyandian mis. nama file. Saya bukan orang Python, jadi saya tidak dapat membantu Anda dengan kode sumber. Menurut jawaban yang diterima untuk pertanyaan ini, Anda akan memiliki baris seperti chardet.detect(os.popen("ls yourfilename.txt").read()) dalam skrip Python Anda, yang akan menampilkan penyandian yang paling memungkinkan bersama dengan peringkat kepercayaan.

Untuk meringkas:

  • Pastikan bahwa nama file di server Ubuntu Anda benar-benar dikodekan dalam UTF-8, dengan mengikuti langkah-langkah yang ditampilkan di atas dan menggunakan alat yang disebutkan di atas.

  • Setelah Anda benar-benar yakin bahwa nama file di server Ubuntu Anda dikodekan dalam UTF-8, periksa apakah klien sftp di laptop Anda dapat mengunduhnya. Jika tidak, coba klien lain hingga berhasil.

  • Jika Anda menemukan bahwa tidak semua nama file di server Ubuntu dikodekan dalam UTF-8, sesuaikan pengaturan di VisualCron. Saya tidak tahu VisualCron dan karenanya tidak dapat membantu Anda.


Linux
  1. Cara Menghubungkan ke SFTP Menggunakan FileZilla untuk Transfer File yang Aman

  2. Bagaimana cara menentukan file kunci untuk sshfs?

  3. Bagaimana cara mengubah file di tempat menggunakan awk? (seperti halnya sed -i)

  1. Bagaimana mengubah memory_limit di file .htaccess

  2. Bagaimana Cara Mengubah Izin Pada Satu File?

  3. Cara mengubah nama host di server web cPanel

  1. Ubah versi kernel di server cloud Linux dengan menggunakan mode penyelamatan

  2. Bagaimana cara mengubah direktori root dari server Apache?

  3. Bagaimana cara mengunduh file dari server menggunakan SSH?