Opened 13 years ago

Closed 13 years ago

#236 closed Defect (Works for Me)

nicknames do not reflect character encoding

Reported by: anonymous Owned by: timothy
Component: Colloquy (Mac) Version: Local Build
Severity: Normal Keywords: character encoding
Cc:

Description

If one changes the character encoding for a channel (say, UTF-8 to ASCII), nicknames do not reflect this change (nicknames appear to be UTF-8 all the time). While nicknames with symbols are not officially supported, it is possible to use them. It isn't a major issue because it isn't "supposed" to happen.

Change History (11)

comment:1 Changed 13 years ago by timothy

  • Resolution set to wontfix
  • Status changed from new to closed

Nicknames are based on the connection encoding, not per-channel. Try adjusting the encoding used in the Connection Info panel. This behavior is intended and is reflected in other clients.

comment:2 Changed 13 years ago by anonymous

dnvdzsnvsvdevn vb

comment:3 Changed 13 years ago by anonymous

  • priority changed from lowest to normal
  • Resolution wontfix deleted
  • Severity changed from trivial to normal
  • Status changed from closed to reopened

I have a similar problem: connection encoding is set to Cyrillic (Windows), same does the channel encoding. But cyrillic nicknames are displayed incorrectly. On server with UTF-8 encoding everything works perfectly.

comment:4 Changed 13 years ago by eridius

  • Resolution set to wontfix
  • Status changed from reopened to closed

I'm guessing that this is actually a symptom of #213.

comment:5 Changed 13 years ago by anonymous

  • Resolution wontfix deleted
  • Status changed from closed to reopened

comment:6 Changed 13 years ago by rq@…

  • Resolution set to duplicate
  • Status changed from reopened to closed

yep, a dup for #213

comment:7 Changed 13 years ago by timothy

Fixed in [2893].

comment:8 Changed 13 years ago by anonymous

  • Resolution duplicate deleted
  • Status changed from closed to reopened
  • Version changed from 2.0 (2D9) to Built Source

Still not fixed, build from CVS source today, and russian nicks are now displayed as some chinese characters (before they were some western-european chars). And still can't change to russian nick. This all applies to non-unicode server, with UTF-8 servers everything works perfectly as before.

comment:9 Changed 13 years ago by rq@…

could you provide me with a server name to connect to test that? :)

comment:10 Changed 13 years ago by anonymous

irc.rinet.ru, for example. And utf8.rusnet.org.ru:7770 - the same network, but with utf-8 recode

comment:11 Changed 13 years ago by rq@…

  • Resolution set to worksforme
  • Status changed from reopened to closed

ok tested. WorksForMe?.

check this out (output of Console; i'll be adding a "> " symbol at the beginning of each line that appears in bold in console):

> NICK ер-ку
> USER rq snape.local irc.rinet.ru Римас
001: Welcome to the Internet Relay Network ер-ку!~rq@85.206.198.15

<...lots of blah blah...>

375: - irc.rinet.ru Message of the Day - 
372: - 10/9/2003 12:16
372: - =======================================================================
372: - RusNet IRC Network    http://www.rus-net.org    Rinet-RusNet IRC Server 
372: - -----------------------------------------------------------------------
372: -  Codepages per ports are:            тХУУЛЙЕ ЛПДПЧЩЕ ФБВМЙГЩ РП РПТФБН:
372: - 
372: -  6667: none        7770: koi8-r    7773: iso-8859_5    7775: translit 
372: -  6668: translit    7771: cp1251    7774: macintosh     7776: koi8-ua 
372: -  6669: cp1251      7772: cp866     N.B.: for Windows use cp1251.
372: -                                                
372: -  To change your codepage on-the-fly:  уНЕОЙФШ ФБВМЙГХ "ОБ МЕФХ" НПЦОП:
372: -                  /quote codepage codepage-name

<... blah blah ...>

376: End of MOTD command.
ер-ку MODE +i
222: Your codepage is now NONE

<... blah blah in random Cyrillic capital letters ...>

Yeah, Russian symbols are broken. You know why? Because I connected to port 6667, which has no default charset specified, so I should be getting text with absolutely no transcoding applied. And that caps-locked mess seems familiar to me. It looks like misinterpreted bytes if KOI8-R... ;)

To check it, I go to the terminal, issue the following command and get the following output:

$ echo "уНЕОЙФШ ФБВМЙГХ ОБ МЕФХ НПЦОП" |iconv -f utf-8 -t cp1251 |iconv -f koi8-r -t utf-8
Сменить таблицу на лету можно

Yup, i'm right... :)

OK... let's do what the server suggested. But first, let's WHOIS myself:

> whois ер-ку
311: ер-ку ~rq 85.206.198.15 * Римас
319: ер-ку @#тест 
312: ер-ку irc.rinet.ru Moscow server of RusNet IRC Network
223: ер-ку Charset translation is NONE
317: ер-ку 88 1126046596 seconds idle, signon time
318: ер-ку End of WHOIS list.

yeah, I've joined #тест automatically...

nickserv codepage CP1251
222: ЕП-ЙС Your codepage is now CP1251

oooohhhhhh MY NICKNAME IS NOW ЕП-ЙС? Let's change it, and whois myself again:

> nick ер-ку
ЕП-ЙС!~rq@85.206.198.15 NICK
> whois ер-ку
311: ер-ку ~rq 85.206.198.15 * пХЛЮЯ
319: ер-ку @#РЕЯР 
312: ер-ку irc.rinet.ru Moscow server of RusNet IRC Network
223: ер-ку Charset translation is CP1251
317: ер-ку 292 1126046596 seconds idle, signon time
318: ер-ку End of WHOIS list.

Now let's whois myself running another connection to utf8.rusnet.org.ru:7770:

> whois ерку
311: ерку ~rq 85.206.198.15 * Римас
319: ерку @#тест 
312: ерку utf.irc.lucky.net Unicode RusNet IRC Server (test)
318: ерку End of WHOIS list.

now let's join #тест again...
uh, doesn't work, and closes the tab instead... let's join again...

> JOIN #тест
JOIN #тест
353: = #тест ер-ку @ерку 
366: #тест End of NAMES list.
> MODE #тест
324: #тест + 
> WHO #тест
352: #тест ~rq 85.206.198.15 irc.rinet.ru ер-ку H 0 пХЛЮЯ
352: #тест ~rq 85.206.198.15 utf.irc.lucky.net ерку H@ 3 Римас
315: #тест End of WHO list.

a-ha.... works!:)

Now, just to make sure, here's what happens when I connect to irc.rinet.ru:6669 (which has windows-1251 as the default port charset):

> NICK ер-ку
> USER rq snape.local irc.rinet.ru Римас
001: Welcome to the Internet Relay Network ер-ку!~rq@85.206.198.15

<... blah blah ...>

372: -  To change your codepage on-the-fly:  Сменить таблицу "на лету" можно:

<... blah blah... See? The text isn't borked anymore! ...>

222: Your codepage is now CP1251

This shows up automatically. No more caps below, and, what's the most important:

> JOIN #тест
JOIN #тест
353: = #тест ер-ку @ерку 
366: #тест End of NAMES list.

Here. The nicknames are in CP1251 now, just as requested. Just as you said they were not.

Now some explaining. RusNet? seems to be having some very smart (and, probably, unique) IRC server network setup. I know the problems Russians have been having with the number of their charsets (there are 7 in the MOTD, plus the TRANSLIT option), and the solution RusNet? came up with, seems really sweet. You have server-side transcoding done for you, which means, you can connect using any weird IRC client you want, even if it doesn't support Cyrillic symbols at all, and to fully change the charset used, you simply change the IRC server port. However, you have also an option to connect to a port 6667, with says it has no transcoding applied by default. In deed, it actually feeds you with koi8-r in that case.

However, changing the port is not the only option. You also have the /nickserv codepage command. But it is a bit limited. Why? Because, when you are changing your charset on-the-fly, you already have some communication between you and the server happenned, and you cannot revert/recode it. This means, that, because the channels you joined were interpreted as koi8-r, their names are actually different then what you saw when interpreting them as windows-1251. Also, your REAL realname and nickname aren't that beautiful anymore (unless they were ASCII). I hope this explanation is clear enough to understand... :)

Also, i'm not even sure, that the issue with Colloquy closing the channel window is a bug. When charset changes, Colloquy doesn't seem to know it, so it simply doesn't update its information about the channels you are in. And even if it did, i'm not sure it would really know which new names map to which old names anymore, because "NONE" isn't informative at all. Of course, if RusNet? would change that "Your codepage is now NONE" to a more informative "Your codepage is now KOI8-R", Colloquy could then know that, if the devs would implement this feature

I'm closing this bug, as I don't see the symptoms you described. If you still don't see russian nicknames, when connecting to a port 6669 with windows-1251 as the connection charset (or to port 6667 with KOI8-R as connection charset), you can reopen it, but supply more information, please. :)

Note: See TracTickets for help on using tickets.