Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 13

Как поменять кодировку в потоке при чтении файла?

05.09.2014, 03:40. Показов 2558. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Проблема такая, на ftp сервере лежат файлы (xml) с кодировкой windows-1257, получаю их с сервера (readfile) и парсю (js.transform), выводит не совсем понятное ((( пытался перекодировать все, кроме этих файлов, сами понимаете почему, нет реакции!!!(((
что делать?
Миниатюры
Как поменять кодировку в потоке при чтении файла?  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.09.2014, 03:40
Ответы с готовыми решениями:

Как указать кодировку при чтении с файла
Суть программы. Имеется файл data.txt, в котором в такой последовательности записаны символы aaa b vv kkkk nnnnnn ppppp ii kkkk...

Как при чтении файла указать кодировку
Всем доброго времени суток! Есть переменная Dim SB As New System.Text.StringBuilder в ней содержится текст, который отображается...

Как указать кодировку при чтении текстового файла
Я пишу некий парсер логов. Указываю строковое значение, например "образец1", выбираю несколько файлов, запускаю процесс. На выходе хочу...

4
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
05.09.2014, 12:27
Ни содержимого файлов (может они там уже такие кракозябры содержат?), ни скриптов их обработки\парсинга... Опять нужно вызывать экстрасенсов...
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
05.09.2014, 13:44
Экстрасенсы уже здесь.

freelivegleb, вам нужно сконвертировать полученные данные в UTF-8 после (или до, в зависимости от общей кривости происходящего действа) парсинга. Если сам сайт на котором выводится информация не в UTF-8, то следует применять htmlentities.

Что такое js.transform?
0
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 13
05.09.2014, 15:00  [ТС]
так, это верх моего документа, на котором происходит отображение содержимого xml отчета

HTML5
1
2
3
4
5
6
7
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257" />
<link rel="stylesheet" type="text/css" href="css/style1.css" />
<script type="text/javascript" src="js/xmltransform.js"></script>   
</head>
<body onload="transformxml()">
это скрипт на js который берет значение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function transformxml()
{
if (window.ActiveXObject)
    {
    // IE
 
    // XML:
    var xmltxt
    xmltxt=document.getElementById("xmlcode").value
    if (xmltxt=="")
        {
        alert("The XML is empty")
        return false;
        }
    xml=new ActiveXObject("MSXML2.DOMDocument");
    xml.async=false
    xml.loadXML(xmltxt)
    if (xml.parseError.errorCode!=0)
        {
        document.write("Error in XML<br><br>Line " + xml.parseError.line + ": " + xml.parseError.reason);           
        alert("Error in XML\n\nLine " + xml.parseError.line + ": " + xml.parseError.reason);
        return false
        }
    // XSL:
    var xsltxt
    xsltxt=document.getElementById("xsltcode").value
    if (xsltxt=="")
        {
        alert("The XSLT is empty")
        return false
        }
    xsl=new ActiveXObject("Microsoft.XMLDOM")
    xsl.async=false
    xsl.loadXML(xsltxt)
    if (xsl.parseError.errorCode!=0)
        {
        document.write("Error in XSLT<br><br>Line " + xsl.parseError.line + ": " + xsl.parseError.reason);                  
        alert("Error in XSLT\n\nLine " + xsl.parseError.line + ": " + xsl.parseError.reason);
        return false
        }
 
    // Transform:
    document.write(xml.transformNode(xsl));                 
        }
            else if (document.implementation && document.implementation.createDocument)
        {
        
        
    // Mozilla
    // XML:
    var xmltxt
    xmltxt=document.getElementById("xmlcode").value
    if (xmltxt=="")
        {
        alert("The XML is empty")
        return false
        }
    var doc=new DOMParser();
    var xml=doc.parseFromString(xmltxt,"text/xml");
    if (xml.documentElement.nodeName=="parsererror")
        {
        document.write("Error in XML<br><br>" + xml.documentElement.childNodes[0].nodeValue);
        alert("Error in XML\n\n" + xml.documentElement.childNodes[0].nodeValue);
        return false;
        }
    // XSL:
    var xsltPrs=new XSLTProcessor();
    var xsltxt
    xsltxt=document.getElementById("xsltcode").value
    if (xsltxt=="")
        {
        alert("The XSLT is empty")
        return false
        }
    xsl=doc.parseFromString(xsltxt,"text/xml");
    if (xsl.documentElement.nodeName=="parsererror")
        {
        document.write("Error in XSLT<br><br>" + xsl.documentElement.childNodes[0].nodeValue);      
        alert("Error in XSLT\n\n" + xsl.documentElement.childNodes[0].nodeValue);
        return false;
        }
 
    xsltPrs.importStylesheet(xsl);
        
    // Transform:
        var result=xsltPrs.transformToFragment(xml,document);
    document.getElementById("result_output").appendChild(result);
    //  document.replaceChild(result,window.document.childNodes[0])
        }
    else
        {
        // No Browser support:
            alert("Your browser does not support this example.");
        }
}
из двух

HTML5
1
2
3
4
5
6
7
8
<textarea id="xmlcode" style="display:none">
<?php readfile($qwerty); ?>
</textarea>
    <textarea id="xsltcode" style="display:none">
    <?php readfile('css/xmlstyles.xsl'); ?>
    </textarea>
 
<div id="result_output"></div>

таблица xsl, xml тоже windows-1257
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
05.09.2014, 15:21
Лучший ответ Сообщение было отмечено freelivegleb как решение

Решение

О, прикольно. Обычный XSLT-процессор на JS.

Вам нужно сконвертировать XML и XSL в UTF-8 перед трансформацией, не будет оно с другими кодировками никогда нормально работать. Соответственно на выходе - так же получите UTF-8.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.09.2014, 15:21
Помогаю со студенческими работами здесь

Указать кодировку при чтении из файла
using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Как задать кодировку при чтении с DBF
Есть dbf файл, созданный Visual Fox Pro. Его я менять не могу, могу только читать. Читаю conn.ConnectionString =...

Поменять кодировку при сохранении тхт-файла
Доброго! В общем, при создании текстовика средсвами БАТ-файла, весь руский шрифт козяблиться... Обычным блокнотом фиг прочтешь. Можно ли...

Как поменять кодировку файла?
Хочу поменять кодировку файла, чтобы были видны русские буквы, но пробовал разные способы, не получается, подскажите пожалуйста. string...

Как поменять кодировку файла db (SQLite)?
У меня есть файл iChat.db, но у него кодировка Windows-1251. В нём хранится история скрипта чата. Но по кое-каким обстоятельствам мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru