Как сменить кодировку txt файла не открывая его?

12 3
C
На сайте с 17.05.2012
Offline
69
clb
13191

Подскажите как сменить кодировку txt файла не открывая его? Файл большого размера. Из utf-8 в windows-1251

WebAlt
На сайте с 02.12.2007
Offline
250
#1

TextPipe поищите.

Koyaanisqatsi
На сайте с 18.11.2009
Offline
35
#2

как вариант:

<?php

function doit($dir='.'){
$d=opendir($dir);
while($f=readdir($d)){
if($f!=='.' AND $f!=='..'){
echo $f;
if(is_file($dir.'/'.$f)){
echo ' Idet rabota...';

$a=file_get_contents($dir.'/'.$f);
$a=iconv('UTF-8','WINDOWS-1251',$a);
$fp=fopen($dir.'/'.$f,'w');
fwrite($fp,$a);
fclose($fp);
echo ' - OK<br />';
}elseif(is_dir($dir.'/'.$f)){
echo ' changing dir<br />';
doit($dir.'/'.$f);
}else{
echo ' Skipping<br />';
}
}
}
}
doit('.');

?>

Сохраняете этот код в php, кидаете в папку со своим файлом и открываете php через браузер.

A1
На сайте с 04.09.2013
Offline
18
#3
clb:
Подскажите как сменить кодировку txt файла не открывая его? Файл большого размера. Из utf-8 в windows-1251

$ iconv -f utf-8 -t cp1251 in.txt > out.txt

Вот только "Текст, однажды спасённый из кодировки прошлого века, не должен возвращаться обратно." :)

C
На сайте с 17.05.2012
Offline
69
clb
#4
abbat13:
$ iconv -f utf-8 -t cp1251 in.txt > out.txt

Вот только "Текст, однажды спасённый из кодировки прошлого века, не должен возвращаться обратно." :)

Через командную строку? Это будет работать в windows?

SeVlad
На сайте с 03.11.2008
Offline
1609
#5
clb:
как сменить кодировку txt файла не открывая его?

Никак. Все предложенные варианты всё равно его "открывают" = загоняют в память содержимое.

"Перекодировка" - это изменения кодов символов, содержащихся в нём. Как можно изменить внутренности не добравшись к ним? Никак.

У тебя какая проблема? Большой файл не открывается нотепад++, правильно?

Насколько большой? Какой объём памяти в компе?

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
C
На сайте с 17.05.2012
Offline
69
clb
#6

Да, не открывается. 30 гб файл, память 4гб

SeVlad
На сайте с 03.11.2008
Offline
1609
#7
clb:
30 гб файл, память 4гб

Что можно напихать в 30гб?!!!

Тебе надо найти блокнот, который не загоняет весть файл в память, а умеет брать из него блоками. Я не помню какой, но под винду такой когда-то имелся. Правда, может ли он перековертировать и по-блочно сохранять-дописывать - даже не знаю.

Под линухом, если не ошибаюсь, такой софт можно встретить более чем реально. Надеюсь, линуксоиды подскажут ;) И как им отработать тоже.

Из области непроверенной фантастики.

Можно сделать вирт память на винте (есть софт для этого) гиг под 50 (но не знаю насколько возможно такие объёмы выделять и как это будет работать.) и тогда пробовать открывать НР++ или др.

[Удален]
#8

1 режешь тоталом файл на такие куски, чтобы хватило оперативы для открытия нотепадом++

2 открываешь и меняешь кодировку файлов

3 потом тоталом можно собрать файл обратно

A1
На сайте с 04.09.2013
Offline
18
#9
clb:
Через командную строку? Это будет работать в windows?

Про windows речи не было в изначальном сообщении. Можно установить cygwin или LibIconv for Windows.

D
На сайте с 14.01.2007
Offline
153
#10
clb:
Да, не открывается. 30 гб файл, память 4гб
getforweb:
1 режешь тоталом файл на такие куски, чтобы хватило оперативы для открытия нотепадом++

мда...

а по теме: php, fopen, fgets, iconv

фсё

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий