The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Перекодировщик utf-8 -> cp1251"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Перекодировщик utf-8 -> cp1251"
Сообщение от Someone Искать по авторуВ закладки on 28-Май-04, 20:25  (MSK)
Подскажите, где можно найти перекодировщик utf-8 -> win-1251 и обратно или продскажите, где можно найти кодовые таблицы для такой перекодировки. (iconv не предлагать)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Перекодировщик utf-8 -> cp1251"
Сообщение от Someone Искать по авторуВ закладки on 02-Июн-04, 19:31  (MSK)
люди, ну подкиньте пару линков-то
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Перекодировщик utf-8 -> cp1251"
Сообщение от klalafuda emailИскать по авторуВ закладки on 02-Июн-04, 20:27  (MSK)
>люди, ну подкиньте пару линков-то

простите, если iconv не предлагать, то самому слабо набросать программку скажем на C на пару сотен строк (вместе с cp1251-unicode таблицей) ? или есть проблемы с посещением www.unicode.org и поиском таблицы перекодировки ?

// wbr

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. " то самому слабо набросать программку скажем на  >C на пару ..."
Сообщение от Lamr emailИскать по авторуВ закладки on 04-Июн-04, 13:06  (MSK)
> то самому слабо набросать программку скажем на
>C на пару сотен строк (вместе с cp1251-unicode таблицей) ?

Можно я скажу! Возмите мой!
Только таблицу надо добавить, utf нету
:-)))

/**
* @(#) Easy recoder  windows-1251 <-> koi8-r <-> cp866
*
* @author Andrew Wingborn mailto://programmer_coolsoft_ru
* @version 0.9
* @date 2004-02-22
*
* $FreeBSD$
*
* set tabstop=4
*/

#include <stdio.h>
#include <string.h>


int chars[256];

int win[] = {
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,
0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,
0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,
0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,
0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,
0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,
0xff,0xa8,0xb8
};

int koi[] = {
0xe1,0xe2,0xf7,0xe7,0xe4,0xe5,0xf6,
0xfa,0xe9,0xea,0xeb,0xec,0xed,0xee,
0xef,0xf0,0xf2,0xf3,0xf4,0xf5,0xe6,
0xe8,0xe3,0xfe,0xfb,0xfd,0xff,0xf9,
0xf8,0xfc,0xe0,0xf1,0xc1,0xc2,0xd7,
0xc7,0xc4,0xc5,0xd6,0xda,0xc9,0xca,
0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd2,
0xd3,0xd4,0xd5,0xc6,0xc8,0xc3,0xde,
0xdb,0xdd,0xdf,0xd9,0xd8,0xdc,0xc0,
0xd1,0xb3,0xa3
};

int dos[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,
0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,
0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,
0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,
0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,
0xaa,0xab,0xac,0xad,0xae,0xaf,0xe0,
0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,
0xef,0xf0,0xf1
};

struct args {
char *call_name;
int *src;
int *dst;
}
  code[] = {
{  "win2koi", win, koi },
{  "win2dos", win, dos },
{  "koi2win", koi, win },
{  "koi2dos", koi, dos },
{  "dos2win", dos, win },
{  "dos2koi", dos, koi },
};

#define SIZE sizeof(koi)/sizeof(i)

FILE *input, *output;

void
err_quit(const char *msg)
{
fprintf(stderr, "%s\n", msg);
exit(1);
}

FILE*
Open(const char *name, const char *mode)
{
FILE *fp;

if( (fp = fopen(name, mode)) == NULL)
err_quit("do not open file");
return(fp);
}

void
recode(int func)
{
int i;

for(i=0; i < 256; i++)
chars[i] = i;

for (i=0; i < SIZE; i++)
chars[ code[func].src[i] ] = code[func].dst[i];

while( (i = fgetc(input)) != EOF)
fputc(chars[i], output);

exit(0);
}

int
main(int argc,char* argv[])
{
int i;

if(argc > 3)
err_quit("man win2koi");

input  = stdin ;
output = stdout;

if(argc == 3)
if(argv[1][0] != '-')
input = Open(argv[1], "r");

if(argc > 1)
if(argv[ argc-1 ][0] != '-')
output = Open(argv[ argc-1 ], "a");

for(i=0; i < sizeof(code)/sizeof(struct args); i++)
if( strstr(argv[0], code[i].call_name) != NULL)
recode(i);

fprintf(stderr, "%s: ", argv[0]);

err_quit("unknown function");
}
//
//#EOF

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. " то самому слабо набросать программку скажем на  >C на пару ..."
Сообщение от Sokel Искать по авторуВ закладки on 13-Июл-04, 17:46  (MSK)
>Можно я скажу! Возмите мой!
>Только таблицу надо добавить, utf нету
>:-)))

а то, что UTF - плавающая кодировка не смущает?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Перекодировщик utf-8 -> cp1251"
Сообщение от dawnshade emailИскать по авторуВ закладки on 08-Июн-04, 13:54  (MSK)
>Подскажите, где можно найти перекодировщик utf-8 -> win-1251 и обратно или продскажите, где можно найти кодовые таблицы для такой перекодировки. (iconv не предлагать)


К примеру http://search.cpan.org/~gaas/Unicode-Map8-0.12/

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Перекодировщик utf-8 -> cp1251"
Сообщение от Lamr emailИскать по авторуВ закладки on 08-Июн-04, 15:51  (MSK)
>К примеру http://search.cpan.org/~gaas/Unicode-Map8-0.12/

отстой!
мой круче
и порт стандартный собран - можно make install clean

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. ">и порт стандартный собран - можно make install clean "
Сообщение от Lamr emailИскать по авторуВ закладки on 08-Июн-04, 16:02  (MSK)
>и порт стандартный собран - можно make install clean

вот
http://beastie.fromru.com/ports/converters/win2koi-0.9.tar.gz

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. ">и порт стандартный собран - можно make install clean "
Сообщение от mirya emailИскать по авторуВ закладки on 14-Июл-04, 15:16  (MSK)
http://search.cpan.org/CPAN/authors/id/G/GU/GUIDO/libintl-perl-1.11.tar.gz

табицы перекодировки для любой кодировки, кайф в том, что можно автоматически вырезать их все и конвертировать в любой формат

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру