Лучший отвечающий
Sharepoint 2010 Visual WebPart(SandBox) Не выводит русский текст?

Вопрос
-
после того как добавил всё решение в VisualPart(SandBox) весь текст, который я выводил на русском языке превратился в ироглифы....., если на английском переписать, то номально отображает, а если на русском, то ироглифы..., что делать не подскажите?
<p> Посчитать с
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar> по
<asp:Calendar ID="Calendar2" runat="server"></asp:Calendar>
</p>14 марта 2012 г. 6:22
Ответы
-
Проблема в другом, Visual WebPart (sandboxed) хитро работает. На самом деле, когда генерится wsp, то вы в нём не обнаружите (открыть можно, например, с помощью 7-zip) папки ControlTemplates. А следовательно и ascx файла там нет. Visual Studio 2010 SharePoint Power Tools перед тем как сгенерить wsp собирает всё в dll-ку включая user control.
Из wsp достаньте вашу dll-ку, откройте в рефлекторе, увидите, там, что текст, который был в ascx файлах будет установлен в коде (например _buildcontrol_01.Text ="....") и там уже будет текст с неправильной кодировкой. Чтобы этого избежать, можно присваивать всю кириллицу непосредственно в code behind'e.
Я глубоко не копался, но проблема видимо где-то у них в коде, когда они загружают текст ascx файла и парсят его.
Если интересно посмотреть как они там это делают :) то возьмите файл установки (SpPowerTools_x86_enu.EXE), запустите cmd.exe и выполните SpPowerTools_x86_enu.EXE /extract, далее можно выбрать папку в которую, всё это разархивировать. Там будут dll-ки. Вот в них уже можно и покопаться. Исходный код проекта не находил, поэтому, просто так подправить не удастся.
- Изменено AlexanderShelopukho 14 марта 2012 г. 9:52
- Помечено в качестве ответа kobyb 14 марта 2012 г. 14:33
14 марта 2012 г. 9:49
Все ответы
-
после того как добавил всё решение в VisualPart(SandBox) весь текст, который я выводил на русском языке превратился в ироглифы....., если на английском переписать, то номально отображает, а если на русском, то ироглифы..., что делать не подскажите?
<p><asp:Label Text="Посчитать с " />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar><asp:Label Text=" по " />
<asp:Calendar ID="Calendar2" runat="server"></asp:Calendar>
</p>А если так?
Если и так не получится, то задавайте текст для Label в коде.
Bond... Brooke Bond!
- Изменено Aviw_ 14 марта 2012 г. 6:58
14 марта 2012 г. 6:56 -
после того как добавил всё решение в VisualPart(SandBox) весь текст, который я выводил на русском языке превратился в ироглифы....., если на английском переписать, то номально отображает, а если на русском, то ироглифы..., что делать не подскажите?
<p><asp:Label Text="Посчитать с " />
<asp:Calendar ID="Calendar1" runat="server"></asp:Calendar><asp:Label Text=" по " />
<asp:Calendar ID="Calendar2" runat="server"></asp:Calendar>
</p>А если так?
Если и так не получится, то задавайте текст для Label в коде.
Bond... Brooke Bond!
14 марта 2012 г. 7:41 -
Я помню на master-page пытался русский текст ввести. Все кодировки перебрал, истерзал весь web.config, но так решения и не нашёл.
Так и пришлось использовать файлы ресурсов.
Bond... Brooke Bond!
14 марта 2012 г. 9:36 -
Да это известная бага в SharePoint power tools, которую вот уже больше года не могут поправить.
Тут 2 выхода:
1. Задавать текст в Code-behind файлах
2. Использовать файлы ресурсов
14 марта 2012 г. 9:45 -
Проблема в другом, Visual WebPart (sandboxed) хитро работает. На самом деле, когда генерится wsp, то вы в нём не обнаружите (открыть можно, например, с помощью 7-zip) папки ControlTemplates. А следовательно и ascx файла там нет. Visual Studio 2010 SharePoint Power Tools перед тем как сгенерить wsp собирает всё в dll-ку включая user control.
Из wsp достаньте вашу dll-ку, откройте в рефлекторе, увидите, там, что текст, который был в ascx файлах будет установлен в коде (например _buildcontrol_01.Text ="....") и там уже будет текст с неправильной кодировкой. Чтобы этого избежать, можно присваивать всю кириллицу непосредственно в code behind'e.
Я глубоко не копался, но проблема видимо где-то у них в коде, когда они загружают текст ascx файла и парсят его.
Если интересно посмотреть как они там это делают :) то возьмите файл установки (SpPowerTools_x86_enu.EXE), запустите cmd.exe и выполните SpPowerTools_x86_enu.EXE /extract, далее можно выбрать папку в которую, всё это разархивировать. Там будут dll-ки. Вот в них уже можно и покопаться. Исходный код проекта не находил, поэтому, просто так подправить не удастся.
- Изменено AlexanderShelopukho 14 марта 2012 г. 9:52
- Помечено в качестве ответа kobyb 14 марта 2012 г. 14:33
14 марта 2012 г. 9:49