파일에 한글로 기록을 한 뒤 기록을 보면 한글이 깨져있습니다. 채택완료
기초가 없으니 이런게 늘 문제네요
파일에 한글로 기록을 한 뒤 기록을 보면 한글이 깨져있습니다.
그래서 아래 코드로 테스트를 해보니 두가지 문제가 ...
</p>
<p><?php
echo $str = "테스트". date("Y-m-d H:i:s")."\n";
$f = fopen('utf8.txt' , 'a' ) ;
fwrite($f, iconv( 'EUC-KR' ,'UTF-8' ,"UTF-8".$str) );
fwrite($f, "default".$str);
fclose( $f ) ;
?></p>
<p><a href="utf8.txt" >보기</a>
</p>
<p>
위 코드를 실행한후
1. 보기를 클릭해보면 아래처럼 깨져서 보입니다.
default�뚯뒪��2022-10-10 04:09:02
2. fwrite($f, iconv( 'EUC-KR' ,'UTF-8' ,"UTF-8".$str) ); 이코드로는 데이타를 쓰질 못하네요
답변 6개
위 코드를 실행한후
1. 보기를 클릭해보면 아래처럼 깨져서 보입니다
==
어떤 브라우저를 쓰셨나요?
IE 같은 경우 가끔 utf8을 euc-kr 로 인식하는 경우가 있습니 다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
넣은건 아예 써지지도 않네요.
댓글을 작성하려면 로그인이 필요합니다.

* 사진은
결과1 (t.php 실행)
결과2 (보기클릭)
소스 에디터
위 세개 창을 한개 이미지로 편집했습니다.
* 에디터 아래에 UTF-8 이렇게 써있으면 맞는건가요?
* 이제보니 시간이 오후4시인데 09시로 나오네요.. 뭔가 한글 깨지는거랑 관련이 있는가요?
답변에 대한 댓글 3개
TimeZone 설정을 확인하시면 될것 같고
파일 인코딩은 UTF-8 이 맞네요.
utf8.txt 파일을 편집기로 직접 열어보세요
메모장이나 Notepad++ 에서 깨지지 않고 잘보이면 저장자체는 문제가 없는거고
웹서버 응답 인코딩을 확인하셔야 합니다.
응답 인코딩이란건 어찌 확인하나요
타임존 설정은 또 어떻게 확인하고 바꾸나요
그누보드에선 시간이 다 제대로 나오는데 저 파일에서 시간만 저러네요
그누 타임설정 하는 부분을 참조하시면 됩니다.
응답인코딩은 다음을 참고해보세요.
https://httpd.apache.org/docs/current/en/mod/core.html#adddefaultcharset
OR
https://httpd.apache.org/docs/current/en/mod/mod_mime.html#addcharset
OR
https://httpd.apache.org/docs/current/mod/mod_autoindex.html#indexoptions
OR
[code]
<Files ~ "\.txt?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
[/code]
댓글을 작성하려면 로그인이 필요합니다.
- '보기' 말고 그냥 바로 출력되는 부분도 깨지나요?
- t.php 파일의 저장 인코딩은 확인 하신건가요?
클릭시 txt 파일을 브라우저에서 출력해주는 부분은
각 기본 혹은 마임타입에 따라 웹서버 응답 인코딩 설정이 어떤가도 확인이 필요힙니다.
아니면 기본 EUC-KR 환경인것 같은데
UTF-8 부분을 모두 제거하고 EUC-KR 인코딩 형태로만 동작하게 확인도 해보세요
댓글을 작성하려면 로그인이 필요합니다.
utf-8 인코딩을 사용하려면
파일의 저장 인코딩
파일이 웹브라우저에 내보내질때의 헤더 인코딩
모두 utf-8 하나로 통일해보세요
</p>
<p><?php
// header('Content-Type: text/html; charset=EUC-KR');
header('Content-Type: text/html; charset=UTF-8');</p>
<p>echo $str = "테스트". date("Y-m-d H:i:s")."\n";
$f = fopen('aa/utf8.txt' , 'a' ) ;
fwrite($f, iconv( 'EUC-KR' ,'UTF-8' ,"UTF-8".$str) );
fwrite($f, "default".$str);
fclose( $f ) ;
?>
<a href="aa/utf8.txt" >보기</a></p>
<p>
답변에 대한 댓글 1개
본문의 코드를 t.php 로 저장하고 브라우저에서 주소/t.php 한 뒤
'보기'를 클릭해보면 깨져서 나옵니다.
기록된것도 "default" 한줄만 기록되고요..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인