>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Проблема с кодировкой в дереве http://forum.mozilla-russia.org/viewtopic.php?id=12453 |
Vect0r > 11-09-2006 11:58:57 |
Выделить код Код:<tree id="Tree" datasources="RDF:files" ref="file:///C:" flags="dont-build-content" hidecolumnpicker="true"> <treecols> <treecol id="Name" primary="true" hideheader="true" flex="1"/> </treecols> <template> <rule> <treechildren> <treeitem uri="rdf:*"> <treerow> <treecell label="rdf:http://home.netscape.com/NC-rdf#Name"/> </treerow> </treeitem> </treechildren> </rule> </template> </tree> Этот код на XUL показывает файловую систему в виде дерева (как проводник). Только вот русские символы отображает некорректно. Кто-нибудь знает, как это можно исправить? |
Anton > 11-09-2006 20:23:19 |
Скорее всего, только "руками", прочтением и последующим перекодированием tree.database. Лично я других вариантов пока не вижу : ( |
Vect0r > 12-09-2006 20:38:53 |
А что такое tree.database и где его можно найти? |
Anton > 13-09-2006 14:55:58 |
database - это свойство элемента <tree>, содержит составной источник данных - localstore+источник данных, формирующий дерево. Возможно, что придётся записывать сначала в файл перед перекодировкой, т. к. на скорую руку сляпанный эксперимент с nsIRDFXMLSerializer: Выделить код Код:<?xml version="1.0" encoding="windows-1251"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="mywindow" title="0" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="test();"> <![CDATA[ var outputStream = { data: "", close: function () {}, flush: function () {}, write: function (buffer, count) { this. data += buffer; return count; }, writeFrom: function (stream, count) {}, isNonBlocking: false }; function f () { var cds = document. getElementById ("Tree"). database; var dss = cds. GetDataSources (); var ds = null; var serializer = Components. classes ["@mozilla.org/rdf/xml-serializer;1"]. createInstance (Components. interfaces. nsIRDFXMLSerializer); while (dss. hasMoreElements ()) { ds = dss. getNext (); if (ds instanceof Components. interfaces. nsIRDFDataSource) { serializer. init (ds); serializer. QueryInterface (Components. interfaces. nsIRDFXMLSource); serializer. Serialize (outputStream); alert (outputStream. data); } } } ]]> <vbox> <tree flex="1" height="100" id="Tree" datasources="RDF:files" ref="file:///C:/" flags="dont-build-content" hidecolumnpicker="true"> <treecols> <treecol id="Name" primary="true" hideheader="true" flex="1"/> </treecols> <template> <rule> <treechildren> <treeitem uri="rdf:*"> <treerow> <treecell label="rdf:http://home.netscape.com/NC-rdf#Name"/> </treerow> </treeitem> </treechildren> </rule> </template> </tree> </vbox> <button label="clickme" onclick="f();"/> </window> ломается на строчке |