Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 17:47 13.06.24 
Клубове/ Компютри и Интернет / .NET Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема пак за Unicode и UTF8 в .НЕТ
Автор dalguch (непознат )
Публикувано01.08.07 16:47  



От време на време се връщам към този проблем.
междувременно се намират по-важни неща, но това продължава да ме тормози и просто не вярвам, че единствения начин е да си напиша собствена имплементация.

Опитвам се със стандартните възможности на .NET да постигна това, което в delphi се прави със стандартните функции utf8Encode() и utf8Decode(), които съответно получават widestring (т.е. unicode string в delphi) и го енкодват в utf8 и обратно - от utf8-енкоднат стринг връщат widestring.

Написах си 2 helper функции със същите имена:

=======================================

using System;
using System.Text;

namespace helpers
{
/// <summary>
/// Description of helper.
/// </summary>
public class Text
{
public static string utf8Encode(string ws) {
byte[] encoded = Encoding.UTF8.GetBytes(ws);

return Encoding.Default.GetString(encoded);
}

public static string utf8Decode(string s) {
byte[] decoded = Encoding.Unicode.GetBytes(s);

return Encoding.Unicode.GetString(decoded);
}
}
}

========================================
Правя следния опит:
1) имам следния текст: "тест test" (т.е. тест на кирилица, после <интервал>, после test на латиница)
2) целта е като направя utf8Encode и после utf8Decode да получа пак същия текст.

Delphi:
---unicode data:---
тест test
codes:
[242][229][241][242][32][116][101][115][116]

извиквам utf8Encode(unicode data):
получавам:
---utf8 data:---
тест test
codes:
[209][130][208][181][209][129][209][130][32][116][101][115][116]

извиквам utf8Decode(utf8 data):
получавам:

---unicode data:---
тест test
codes:
[242][229][241][242][32][116][101][115][116]


C#.NET:
---unicode data:---
тест test
codes:
[242][229][241][242][32][116][101][115][116]

извиквам Text.utf8Encode(unicode data):
получавам:
---utf8 data:---
тест test
codes:
[209][130][208][181][209][129][209][130][32][116][101][115][116]

дотук супер :))
обаче...
извиквам Text.utf8Decode(utf8 data):
получавам:

---unicode data:---
тест test
codes:
[209][130][208][181][209][129][209][130][32][116][101][115][116]


т.е. никакъв ефект
какво ли не пробвах - всички възможни Encoding.
излиза какво ли не, само не и първоначалния текст.

Някой може ли да помогне или да правя хамалогии като се опитам сам да си напиша decode-ването ?
Благодаря предварително
<P ID="edit"><FONT class="small"><EM>Редактирано от dalguch на 01.08.07 16:48.</EM></FONT></P>

Редактирано от dalguch на 01.08.07 16:49.



Цялата тема
ТемаАвторПубликувано
* пак за Unicode и UTF8 в .НЕТ dalguch   01.08.07 16:47
. * Re: пак за Unicode и UTF8 в .НЕТ lNT3   11.08.07 20:22
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.