![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| UNIX & avançada para usuários experientes Especialista-a-Expert. Saiba avançado UNIX, comandos UNIX, Linux, Sistemas Operativos, Administração de Sistemas, Programação, Shell, shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Extraia o ultimo caracter de uma string | annelisa | Programação Shell Script e | 8 | 07-05-2008 12:57 |
| Como extrair primeira coluna com uma especificidade | selamba_warrior | Programação Shell Script e | 3 | 05-22-2008 06:14 |
| extrato personagem + 1 | francis_tom | Programação Shell Script e | 1 | 04-21-2008 01:16 |
| grep ou awk problema, não foi possível extrair números | Baghera | Programação Shell Script e | 7 | 08-31-2007 05:42 |
| Extrair um carácter | aajan | UNIX & avançada para usuários experientes | 10 | 08-20-2007 11:03 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
incapaz de extrair Marcas (™) Caracteres
Olá Todos,
Estou tentando extrair uma marca personagem (™) de uma coluna varchar em uma tabela DB2. O resultado está a ser colocado em um arquivo seqüencial, em um ambiente AIX. Após a extração é completa quando eu ver o arquivo extraído Notei que, em lugar do (™) Caracteres destacou outro personagem SUB tenha sido colocada. Seria ótimo se qualquer pessoa pode lançar alguma luz sobre o motivo por que ele não exibir o (™) Caracteres. Pode ser porque o AIX caráter não permite que este conjunto de caracteres especiais? Gostaria de receber o seu conselho. Obrigado |
|
||||
|
Sim. No entanto, se você estivesse a carregar o arquivo de saída em um ambiente semelhante à uma onde você visualiza os dados foram originalmente você ainda deve ver o TM personagem, em um nível binário, deve manter-se inalterado.
|
|
||||
|
Não existe tal coisa como um "conjunto de caracteres AIX". Há bytes no arquivo, e aí é o seu terminal, e existem várias convenções, para saber como exibir os bytes no arquivo em qualquer terminal. Se você conhecer o conjunto de caracteres codificação do arquivo, e do caráter de seu repertório terminal, você pode prever como um determinado byte seqüência será exibida, mas se um ou o outro é desconhecida, ela é muito difícil dizer o que você deve esperar ( ou mesmo na verdade o que você está falando).
Plain 7 bits de dados é geralmente apresentado como ASCII, que é completamente bem definidos, mas o (tm) caráter não faz parte da 7-bit ASCII caracteres, você visualiza o arquivo estão aparentemente sob duas diferentes interpretações do personagem - definir a codificação do arquivo, talvez usando dois diferentes terminais, ou de diferentes instrumentos que imponham diferentes hipóteses. (No AIX, talvez você tenha a opção de adicionar EBCDIC na mistura, mas não vamos para lá.) Enfim, para resolver este problema, você pode querer usar um hex dump ferramenta (od, xxd, hexdump, Ou mesmo apenas CAT-A) Para inspecionar o que a real bytes no arquivo são. Depois de saber que, não deve ser difícil descobrir a codificação que dá a interpretação que quiser, e / ou converter o arquivo para a representação que você deseja. |
|
||||
|
Obrigado pela resposta .. eu descobri que o conjunto de caracteres codificação utilizada é ISO8859-1 e não tem o sinal de marcas. A marca característica é uma palavra reservada e ali exibidos como SUB.
É possível converter o arquivo para outro com o arquivo com uma codificação diferente conjunto de caracteres e ser capaz de exibir a marca registrada personagem? Em caso afirmativo, como é que poderia ser feito através do Unix? Obrigado |
|
||||
|
Onde é que você precisa exibir o Trademark personagem? Em uma sessão de terminal AIX de algum tipo? Ou em alguma aplicação ou cliente que se conecta ao servidor? Ou em algum outro sistema que os dados serão eventualmente transferidos para?
|
|
||||
|
A grande questão está no conjunto de caracteres que você vê a marca assinar, ou, o que ISO-8859-1 caracteres que você vê como um personagem SUB (independentemente do que é isso?) Em ASCII existe um controle caráter SUB (Ctrl-Z), que tem o código 26 caracteres decimais (octal 032, hex 0x1A) - é que aquilo que você tem no seu arquivo? O que seria útil uma codificação para transferi-la para? A seguir vai traduzir todas as ocorrências desse personagem código no Unicode marca símbolo caráter U 2122 na codificação UTF-8: Código:
perl -pe 's/\x1A/\xE2\x84\xA2/g' file.orig > file.utf8 Ou na norma ISO-8859-1, não há registro do sinal ® em código 0xAE ponto, teria que ser um bom substituto? Código:
perl -pe 's/\x1A/\xAE/g' file.orig > file.iso-8859-1 Isto pressupõe que o personagem é realmente SUB caráter código 0x1A; se não é, mas você pode descobrir o que está em vez disso, deveria ser trivial para se adaptar, quer um desses liners para algo que funciona para você. Algumas páginas têm o código do Windows símbolo de marca em 0x99, para que possa ser uma coisa para tentar se 0x1A, não funciona para você (mas novamente, se você pode olhar para as matérias-primas bytes no arquivo, você não tem que adivinhar) . Última edição por época; em 09/02/2008 02:59.. Motivo: Adicionar ISO8859-1 ® substituição; observação sobre o Windows 0x99 caracteres |
![]() |
| Marcadores |
| Tags |
| conjunto de caracteres, codificação |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|