Bug 419670 - Support difference character set for query and results fro z39.50
Summary: Support difference character set for query and results fro z39.50
Alias: None
Product: tellico
Classification: Applications
Component: general (show other bugs)
Version: 3.2.3
Platform: Other Linux
: NOR wishlist
Target Milestone: ---
Assignee: Robby Stephenson
Depends on:
Reported: 2020-04-05 11:57 UTC by Robby Stephenson
Modified: 2020-04-05 18:37 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 3.3


Note You need to log in before you can comment on or make changes to this bug.
Description Robby Stephenson 2020-04-05 11:57:55 UTC
From mailing list:

Some Z39.50 servers available around here seem to use different
encodings for search queries and marc entries.

For example, catalogo.bnportugal.pt which accepts latin1 for search
queries but uses ISO-5426 for database entries. In yaz-client, I am able
to interact with this server by explicitly setting these character

    marccharset iso5426
    querycharset latin1
    open catalogo.bnportugal.pt

But in Tellico there is only one "character set" option, so either
non-ASCII searches don't work or non-ASCII content in the results is
garbled. Looking at the code (If I am looking in the right place -
z3950connection.cpp?), it seems it's not possible to set separate
encodings for incoming and outgoing data (m_sourceCharSet is used for

Comment 1 Robby Stephenson 2020-04-05 18:37:48 UTC
Git commit 49156ff43a682345da31e97881cfb66bb0d51f7c by Robby Stephenson.
Committed on 05/04/2020 at 18:28.
Pushed by rstephenson into branch 'master'.

Separate query character set encoding from response for z39.50 server

By default, the response is assumed to be the same as the query
if it is empty.

M  +4    -0    ChangeLog
M  +32   -26   src/fetch/z3950connection.cpp
M  +6    -5    src/fetch/z3950connection.h
M  +51   -19   src/fetch/z3950fetcher.cpp
M  +6    -3    src/fetch/z3950fetcher.h
M  +25   -2    src/tests/z3950fetchertest.cpp
M  +1    -0    src/tests/z3950fetchertest.h