powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Юникод юникоду рознь? И как с этим бороться?
6 сообщений из 6, страница 1 из 1
Юникод юникоду рознь? И как с этим бороться?
    #33015605
Buba.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем ASP + MSSQL

Есть поле в базе nvarchar , куда юзер на сайте вбивает свои данные. При просмотре обнаружил, что иногда вместо нормальных русских фамилий лезут крякозаблики (напр., "Iineaa" вместо "Москва", "E?aiau" вместо Любовь).

Методом совершенно ненаучного тыка обнаружено, что если сменить кодовую страницу (вместо 1251 поставить 1252), то все нормально кажет.

Вопросы:
1. Ведь nvarchar - это юникод, исходный язык - один, исходная страница, на которой идет сохранение данных - тоже одна, так почему данные сохраняются по-разному?

2. Если нельзя избежать того, что по-разному все сохраняется, то как можно определять, в какой кодовой странице это на экран выводить? Я бы мог менять перед выводом каждого поля Session.CodePage, если уж так получается. Но как узнать, чего нужно ставить в эту переменную?
...
Рейтинг: 0 / 0
Юникод юникоду рознь? И как с этим бороться?
    #33015628
Dats
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так
Session.CodePage = 1251
Response.CharSet = "windows-1251"
...
Рейтинг: 0 / 0
Юникод юникоду рознь? И как с этим бороться?
    #33015650
Buba.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DatsА если так
Session.CodePage = 1251
Response.CharSet = "windows-1251"
Не-а, не лечится :(
...
Рейтинг: 0 / 0
Юникод юникоду рознь? И как с этим бороться?
    #33015654
В web.config добавьте следующие:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="ru-RU" uiCulture="ru-RU"/>
</system.web>
</configuration>

И переведите все свои странички на Unicode:
<%@ Page language="c#" Codebehind="..." AutoEventWireup="false" Inherits="..." codePage="65001"%>
.....
<html>
<head>
.....
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
.....
</head>
.....
...
Рейтинг: 0 / 0
Юникод юникоду рознь? И как с этим бороться?
    #33015730
Buba.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, видимо, я не достаточно четко сформулировал - все это делается на "классическом" ASP, на VBScript
...
Рейтинг: 0 / 0
Юникод юникоду рознь? И как с этим бороться?
    #33019753
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Buba.Имеем ASP + MSSQL

Есть поле в базе nvarchar , куда юзер на сайте вбивает свои данные. При просмотре обнаружил, что иногда вместо нормальных русских фамилий лезут крякозаблики (напр., "Iineaa" вместо "Москва", "E?aiau" вместо Любовь).

Методом совершенно ненаучного тыка обнаружено, что если сменить кодовую страницу (вместо 1251 поставить 1252), то все нормально кажет.

Вопросы:
1. Ведь nvarchar - это юникод, исходный язык - один, исходная страница, на которой идет сохранение данных - тоже одна, так почему данные сохраняются по-разному?

2. Если нельзя избежать того, что по-разному все сохраняется, то как можно определять, в какой кодовой странице это на экран выводить? Я бы мог менять перед выводом каждого поля Session.CodePage, если уж так получается. Но как узнать, чего нужно ставить в эту переменную?

Когда юзер "вбивает" на сайте свои данные - они юникодом ЕЩЕ не являеются. То есть преобразование из локализованой кодировки в юникод выполняет скрипт, которые обрабатывает данные формы. Ищи ошибку там.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Юникод юникоду рознь? И как с этим бороться?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]