일단 언어셋을 확인하는 페이지( https://manana.kr/zip/charset )입니다.


압축파일이 깨지는데, 이게 어떤 언어셋으로 압축되어있는지 모를때 사용할 수 있습니다.


우선 테스트용으로 쓴 .zip 파일을 예로 들면..



압축파일을 첨부하여 업로드를 하면 하단에 언어셋 리스트가 뜨게 됩니다.


압축파일은 최대 1GB까지만 업로드 됩니다.


이유는 제 서버의 용량이.. (.. .. ..)


덕분에 체크후에 바로바로 삭제합니다.

(페이지가 다시 로딩된 그 시점에서 이미 서버에서는 삭제되어있습니다.)


언어셋 리스트의 하단에는 첫번째 파일(혹은 폴더)의 원본이 표시되며, 아래쪽에는 언어셋별로 인코딩된 언어를 보여줍니다.


제가 테스트로 사용한 압축파일은 일본 윈도우즈에서 압축을 한것이기 때문에, 일본어 언어셋인 SJIS-win등이 재대로 표시되고 있습니다.


어떤 언어셋으로 압축이 되었는지 확인을 하였다면, .zip 파일의 압축된 파일의 이름을 바꾸어 보겠습니다.



테스트로 사용한 zip 파일의 폴더안입니다.



실제로 압축을 풀어서보면 이렇게 언어가 깨지게 됩니다.


이것을 바꾸어 보겠습니다.



파일 이름을 인코딩 해주는 페이지 ( https://manana.kr/zip/encode/ )로 접속을 하시게 되면, 위의 이미지처럼 뜨게 됩니다.


기본적인 설정은 변환 언어셋이 UTF-8입니다.

(UTF-8을 추천합니다.)


.zip 언어셋의 경우는 위에서 확인한 언어셋을 선택해주세요.


기본은 SJIS-win으로 설정되어있습니다.

(일본 윈도우즈에서 압축했을때의 기본값입니다.)



그렇게 업로드를 하면, 파일이 업로드되고 하단에 .zip 파일의 정보가 뜨게 됩니다.


압축파일의 기본적인 정보(용량과 압축율등)가 보여지며, 인코딩된 압축파일의 이름이 뜨게 됩니다.


언어가 깨지는지 확인하고, 오른쪽 하단의 다운로드 버튼을 클릭해줍니다.



다운로드 버튼을 클릭하면, 압축된 파일의 이름이 변경된 .zip파일의 다운로드가 시작됩니다.



압축된 파일을 열어서 확인해보면 언어가 깨지지 않는것을 볼 수 있습니다.



압축을 풀어서 확인해보면 한국어 윈도우즈에서도 언어가 깨지지않고 압축이 풀리는것을 확인 하실 수 있습니다.


파일의 다운로드는 시간이 제한되어있기 때문에 가능한 빠르게 확인하고 다운로드 받는것을 추천합니다.

(이유는 역시 서버의 용량상의 문제로.. 일정시간마다 서버에 업로드된 파일을 삭제하고 있습니다.)


언어셋을 확인하는거처럼 바로바로 삭제하는것을 만들어 보려고 했으나, base64 인코딩으로는 한계가 있어서, 서버에 저장된것을 그냥 일정 시간마다 삭제하는것으로 작업을 해두었습니다.


그리고 다운로드를 받게되면, 다운로드가 시작되는 그 시점에서 파일은 삭제됩니다.


실제로 한번 다운로드후에 다시 다운로드를 클릭하게되면 파일이 존재하지 않기 때문에, 404에러가 뜨게 됩니다.


개인적으로 여러가지 의미(후원하는 일본 회사만 3개에, 후원중인 일본 크리에이터가 수십명이라..)로, 일본인분들에게 .zip 파일을 받는 경우가 많은데, 그때마다 언어셋이 깨져나오는것이 좀 귀찮아서 만들어 봤습니다.

(가끔 신경써서 UTF-8로 인코딩해서 주시는 분들도 계신데..)


일본 윈도우즈에서 내부 네트워크를 통해서 압축을 풀거나, 일본 윈도우즈에서 다운받아서 풀면 되기는 하는데..


일본 윈도우즈가 켜져있지 않으면, 일본 윈도우즈를 기동해야하는 문제가.. (.. .. ..)


ps. 만들기전에 인터넷에 검색해보면, ZipArchive를 사용하여, mb_convert_encoding로 언어셋을 변경하는 코드가 있는데..

이론적으로 안될텐데..

하면서 해보니 역시나..


그것이 성공하려면 몇가지 전제조건이 필요한데, 그 코드가 된다는 분들은 그 전제조건에 만족했기 때문인..


애초에 PHP파일이 UTF-8 인코딩인데, 그 PHP파일에서 이미 불러온 zip파일의 텍스트로 파일의 언어셋을 알 수 있을리가..

(아니, 파일명의 컨버팅도 가능할리가 없..)

설명하려면 좀 복잡한데, 관심이 있으신분은 파일과 인코딩쪽 공부를 해보면 아실 수 있습니다.

(PHP 웹개발자가 그런거 어떻게 아냐구요? 너무 많을걸 알려고 하시면 다치ㅅ..)



실제로 본인이 짠 코드를 보면, 인터넷검색으로 wiki등에서 .zip 파일의 구조를 파악하고, 그 파일을 서버에 올려서 서버의 파일을 PHP 파일 포인터로 열어서, 구조별로 데이터를 읽어서 처리하는 방식으로 만들어본..

(내가 저짓을 약 10년전쯤에 C언어로 많이 했었지.. 설마 PHP로도 할거라고는 생각도 못했지만..)


저 라이브러리를 공개할까 했는데..

하지는 않는거로..


인터넷상에서 압축과 압축해제등의 기능을 넣어볼까 했는데..

솔직히 제가 만드는데 필요한 언어셋 관련이 아니면 ZipArchive을 사용하는게 편하니..

(솔직히 리눅스에서 압축할거라면 그냥 리눅스 명령어 쓰면 되는데.. 압축해제도 그렇고.. 잘 생각해보면 저렇게 다 따로 분해해서 라이브러리로 쓸 이유가 없.. ZipArchive 기능이 착실히 잘 지원하고 있으니..)

Posted by Pure Ani

RE:D Cherish! -Eternity Blood- CRYSTALiA

放課後シンデレラ2 HOOKSOFT

花鐘カナデ*グラム NanaWind

フタマタ恋愛 ASa Project

スタディ§ステディ2 ま~まれぇど

リンパにATATA! ~メス牡蠣ミルクどぴゅらっしゅ~ Hending

創作彼女の恋愛公式 Aino+Links

流星ワールドアクター Heliodor

Secret Agent~騎士学園の忍びなるもの~ ensemble

天冥のコンキスタ エウシュリー

HaremKingdom -ハーレムキングダム- SMEE

ラズベリーキューブ まどそふと

ノラと皇女と野良猫ハート2 -Nora, Princess, and Crying Cat.- HARUKAZE

『ノラと皇女と野良猫ハート2』応援中♪

ピュアソングガーデン PULLTOP

はにデビ! Honey&Devil eufonie

姫繰三六五 HIMEKURI365

姫繰三六五 公式ウェブサイト

はるるみなもに! クロシェット

死に逝く君、館に芽吹く憎悪 バグシステム

Sanguinea-サングイネア- すにぃる

麗華の館 しすたーそふと

カスタムメイドオンライン KISS