none
Sharepoint 2010 Visual WebPart(SandBox) Не выводит русский текст? RRS feed

  • Вопрос

  •  после того как добавил всё решение в 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-ки. Вот в них уже можно и покопаться. Исходный код проекта не находил, поэтому, просто так подправить не удастся. 


    [custom.development]


    • Изменено 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!


    Ну если только через код получается для label задавать текст....., а что с кодировкой?Других вариантов решения проблеммы нет?
    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-ки. Вот в них уже можно и покопаться. Исходный код проекта не находил, поэтому, просто так подправить не удастся. 


    [custom.development]


    • Изменено AlexanderShelopukho 14 марта 2012 г. 9:52
    • Помечено в качестве ответа kobyb 14 марта 2012 г. 14:33
    14 марта 2012 г. 9:49