Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

 eXeL@B —› Программирование —› MS Visual Web Developer 2005 Express Edition - проблеммы с отображением русских шрифтов. Помогите...
Посл.ответ Сообщение


Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 23 июля 2008 07:45
· Личное сообщение · #1

Ну, дело такое: делаю сайтик небольшой на сабже (на C#). В принципе, всё хорошо, удобно, красиво (за основу брал шаблон Club). То, что я прописываю непосредственно в коде страниц отображается отлично, а вот добавляемые новости выглядят "????????? ???????????" =((( После нажатия кнопки редактирования новости там то же самое, т.е. кирилица не воспринимается ещё на уровне записи в бд. Рылся в MSDN, но ничего вразумительного по проблеме не нашёл. Гугл тоже не помог.
Что нужно подправить в проекте, чтобы кирилица нормально отбражалась?

-----
Do Not Get Mad Get Money! ;)




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 23 июля 2008 16:21
· Личное сообщение · #2

CultureInfo problem?
Encoding class usage problem?

код в студию.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 24 июля 2008 07:53
· Личное сообщение · #3

эм... код чего, простите? всего сайта?
Encoding class usage - можно подробнее?

-----
Do Not Get Mad Get Money! ;)





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 24 июля 2008 09:43
· Личное сообщение · #4

так... порывшиь в инете и msdn откопалось "решение" - необходимо в файле web.config прописать:
<globalization
fileEncoding="windows-1251"
requestEncoding="windows-1251"
responseEncoding="windows-1251"
culture="ru-RU"
uiCulture="ru-RU"
/>

только это всё равно не решает проблему... =(((

-----
Do Not Get Mad Get Money! ;)





Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 25 июля 2008 13:09
· Личное сообщение · #5

Дык в штмл нудо еще кодпейдж ставить познакомься с тегом Meta

-----
have a nice day





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 26 июля 2008 03:18
· Личное сообщение · #6

какой html? там aspx... везде, где можно кодировку установил windows-1251... с тэгами знаком =)
в том-то и вся проблема... =( ничего не понимаю...

-----
Do Not Get Mad Get Money! ;)




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 28 июля 2008 18:46
· Личное сообщение · #7

collation тоже cyrillic win1251?

давай код уже, а то нифига не разберешь, что ты там вообще делаешь.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 01 августа 2008 04:32 · Поправил: Talula
· Личное сообщение · #8

Ну, хорошо... Вот файл web.config:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<location path="events_edit.aspx">
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="locations_edit.aspx">
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="news_edit.aspx">
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="photoalbum_new.aspx">
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="member_list.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="member_details.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<connectionStrings>
<add name="ClubSiteDB" connectionString="Data Source=.\SQLExpress;Integrated Security=true;AttachDBFileName=|DataDirectory|Club.mdf;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<roleManager enabled="true"/>
<authentication mode="Forms"/>
<compilation debug="false">
<assemblies>
<add assembly="System.Xml, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Messaging, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
<membership defaultProvider="AspNetSqlMembershipProvider"/>
<siteMap defaultProvider="AspNetXmlSiteMapProvider" enabled="true">
<providers>
<remove name="AspNetXmlSiteMapProvider"/>
<add name="AspNetXmlSiteMapProvider" description="SiteMap provider which reads in .sitemap XML files." type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="Web.sitemap"/>
</providers>
</siteMap>
<customErrors mode="RemoteOnly" defaultRedirect="ErrorPage.htm"/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
-------- ВОТ ТУТ НАДО МЕНЯТЬ (указывал выше на что), НО ТОЛКУ - НОЛЬ! =(
</system.web>
</configuration>


Ну, как вы понимаете, везде где можно, кодировка уже выставлена windows-1251

-----
Do Not Get Mad Get Money! ;)




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 01 августа 2008 14:13
· Личное сообщение · #9

Извини, чувак, но с твоей потрясающей способностью понимать людей и тотальным нежеланием понять, что от тебя действительно хотят, тебе проще всего разобраться самому :D

А так готов поспорить, что у тебя стоит уебищный коллейшен в бд.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 01 августа 2008 16:54
· Личное сообщение · #10

извините, но речь шла про этот файл... его и выкинул...
NG пишет:
у тебя стоит уебищный коллейшен в бд.

а какой тогда пиздатый?

-----
Do Not Get Mad Get Money! ;)




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 августа 2008 18:56 · Поправил: oberonSOV
· Личное сообщение · #11

> а какой тогда пиздатый?
Нейтивный для системы, а если лень читать MSDN - то единственный правильный...




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 01 августа 2008 19:03 · Поправил: Talula
· Личное сообщение · #12

oberonSOV пишет:
Нейтивный для системы

он там по умолчанию стоит и поменять его вообще нельзя (может ограничение фриварного издания?)

ну, спасибо и на этом... можно подумать, до этого не читал... короче, просто сказать что и где поправить никто не может, да? окей...

-----
Do Not Get Mad Get Money! ;)




Ранг: 4.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 августа 2008 01:04
· Личное сообщение · #13

Вообще, в ASP.NET все кодировки по дефолту нормальные стоят, это с БД наверняка проблема.
Что ты за СУБД юзаешь? из неё уже идет текст, который наверняка покацан - типа codepage строковых данных неверный стоит. В debuge, потрейси код, и посмотри, что из БД получаешь.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 августа 2008 12:47
· Личное сообщение · #14

Пробуй вариант <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" culture="ru-RU" /> а дальше дело творческое чтоб конвертации были исключительно unicode<->win1251 и никакой другой фигни, иначе надо явно указывать culture при конвертации. А вообще есть профильные форумы типа sql.ru ...



Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 04 августа 2008 19:04
· Личное сообщение · #15

Talula пишет:
а какой тогда пиздатый?

лично я предпочитаю работать с Latin1_General_CI_AS, но тебе точно не подойдет

вообще попробуй поиграться с добавлением "COLLATE DATABASE_DEFAULT" в запрос, иногда помогает.
но лучше в случае работы с определенным языком, лучше явно указывать коллейшн(в твоем случае - Cyrillic_General_CI_AS) и выставлять приложению соответствующие настройки CurrentCulture.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 02 сентября 2008 07:29
· Личное сообщение · #16

в общем дело такое...
запустили тестовый вариант на хосте. подрубили хостерские бд, восттановили наши бэкапы туда, сайт работает, но с кириллицей всё те же проблемы.

все вокруг говорят "надо сменить collation". но никто не говорит КАК! =(

простите великодушно, но я в этом деле не бум-бум...
1. есть SQL Manager - кто-нибудь может сказать, какой скрипт надо прописать и отправить?
2. есть вариант добавить запрос в строку подключения в файле web.config.
"set character_set_client='cp1251'; set character_set_results='cp1251'; set collation_connection='cp1251_general_ci';" - но как это переделать в sql-запрос?

понимаю, что не совсем по тематике сайта, но на профильных форумах я лично ничего найти не смог...

-----
Do Not Get Mad Get Money! ;)





Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 02 сентября 2008 14:36 · Поправил: Nimnul
· Личное сообщение · #17

Talula

Вобщем там где ты непосредственно даные из бд вытаскиваешь вставь это

string str; - это твая проблемная строка
byte[] b = System.Text.UTF8Encoding.Default.GetBytes(str);

и покажи здесь первые 30 байт.

>>какой html? там aspx...

<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%@ Page Language="C#"
AutoEventWireup="true"
CodeFile="DiseaseTypeAdministration.aspx.cs"
Inherits="Screens_Common_Administration_DiseaseAdministration" %>

Как видишь одно другому не мешает, также советую посещать регулярно www.htmlbook.ru

-----
have a nice day





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 02 сентября 2008 14:48
· Личное сообщение · #18

Nimnul, спасибо! =) буду иметь ввиду на будущее!
проблему с бд разрешили (правда другим способом)... тему закрываю... спасибо всем...

-----
Do Not Get Mad Get Money! ;)



 eXeL@B —› Программирование —› MS Visual Web Developer 2005 Express Edition - проблеммы с отображением русских шрифтов. Помогите...
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати