473,396 Members | 1,775 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

problem with storing greek chars to a buffer (os linux)

hello everyone and happy new year.
i am not sure how to tackle this problem or where is originates from so
i am writing here in hope that if you can not help you can at least
point me in a direction.

I am writing some little program using only standard c++ library and i
am opening a file that contains strings. there are numbers , english
and greek letters among the characters. the reading is done fine and
the data are then stored onto a buffer (without undergoing any
processing) as a few int values ( the lengths of the strings), followed
by a long c string - the concatenation of all the strings of the file.
the receive application can then use the lengths of the strings to
separate the strings from the string again.

so examining the buffer contents in the shared memory i found that the
numbers have their correct corresponding values (0x30 for char '0'
etcetc.) and the lengths of the strings in the c string are correct
too. but the greek characters and system chars found among them (like
spacebar) where wrong - did not have their expected (extended) ascii
values. the funny thing is if i printf the strings of the file, they
appear correctly on console!!

i have set LC_ALL environment variable in my linux machine to
en_US.UTF-8, just in case this is an important detail. and the file was
written from vim (not internally from the program). is it possible that
the file is written in utf-16 format? utf-8? could it be something
wrong in the code?(see below)
thank you in advance for your help
CODE:
once i have the independent strings with 'loadInfoConf()' i serialise
them and send them to the shMem using:

string
detailsStr; details.writeStructToStream(GUILastMessage.oNL,GUI LastMessage.oTL,GUILastMessage.sNL,GUILastMessage. sLL,GUILastMessage.iDL,GUILastMessage.mDL,detailsS tr);
strcpy(&GUILastMessage.oAndS_str,detailsStr.c_str( ));
---------------------------------------------------------------
void InfoClass::loadInfoConf()
{
string curLine="",sumLine="", lines[6];
int i=0;

ifstream infoConfFile(INFOCONF_FILENAME);
if (infoConfFile.is_open())
{
while (!infoConfFile.eof())
{
getline(infoConfFile,curLine);
if ((curLine!="EOV"))
{
if (curLine!="")
sumLine=sumLine+curLine+"\n";
}
else
{
lines[i]=sumLine;
sumLine="";
i++;
}
}
infoConfFile.close();

//remove the last char which is always \n due to the way
//the file open parser (just above) works
lines[0].erase( (lines[0].length()-1) ,1);
lines[1].erase( (lines[1].length()-1) ,1);
lines[2].erase( (lines[2].length()-1) ,1);
lines[3].erase( (lines[3].length()-1) ,1);
lines[4].erase( (lines[4].length()-1) ,1);
lines[5].erase( (lines[5].length()-1) ,1);

info.operatorTel = lines[0];
info.operatorName = lines[1];
info.stationNum = lines[2];
info.stationLoc = lines[3];
info.instDate = lines[4];
info.maintDate = lines[5];

}
else
cout<<"could not open info file\n";
}
------------------------------------------------------------------------------------
void InfoClass::writeStructToStream (int &on_len, int &ot_len, int
&sn_len, int &sl_len, int &id_len, int &md_len, string &buffer)
{
on_len=info.operatorName.length();
ot_len=info.operatorTel.length();
sn_len=info.stationNum.length();
sl_len=info.stationLoc.length();
id_len=info.instDate.length();
md_len=info.maintDate.length();

//int totLen=on_len+ot_len+sn_len+sl_len+id_len+md_len/*+1*/;
string tmpbuf="";
tmpbuf += info.operatorTel;
tmpbuf += info.operatorName;
tmpbuf += info.stationNum;
tmpbuf += info.stationLoc;
tmpbuf += info.instDate;
tmpbuf += info.maintDate;

buffer=tmpbuf;
}
-------------------------------------------------------------------------

Jan 3 '07 #1
0 1412

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Xela | last post by:
Hi A have a very annoying problem. I have written java strored procedures for DB2 v8.1. Their deployement and usage is fine as long as the server is a Windows one. But under Solaris 8 and Linux...
0
ekekakos
by: ekekakos | last post by:
Hello, I am having a serious and urgent problem with the character settings of an oracle database. The database is sitting in a solaris unix server and when we run the env command we have the...
6
by: pros | last post by:
Hi, I am new to learning how to program in JavaScript and want to design a program in JavaScript that will allow a user to run a Classical Greek vocabulary flashcard program on my web page. My...
2
by: Lupus | last post by:
Hi everyone, I've got a problem with a piece of javascript code which parses a string. The problem occurs when the string contains some special characters like é, č, ü... There are 2 symptoms...
0
by: kiluone | last post by:
Hi forums, we can't seem to find the answer to this issue. I hope someone can point me in the correct direction. " we are passing text values entered by user to PHP from Flash using XML. But...
4
by: alexjcollins | last post by:
The following program demonstrates the problem: #include <vector> #include <iostream> #include <tvmet/Vector.h> typedef tvmet::Vector<double, 3Vector3d; class Mesh {
12
by: Punkis | last post by:
Hi all, I have a problem with my php and mysql project. I use an auctions software, named phpauction for my project. I import into my database with utf8 encodingm and I can see the greek...
2
by: Graham Benney | last post by:
Greetings How do I put a non ascii character on a PyQt pushButton? I have tried things like txt = u"\u03a0" (Should be a Greek sigma symbol) but all it shows is the literal string u\03a0. I am...
2
by: stelios andread | last post by:
I'm writing a java programme, which connects to a database in my computer(using jdbc). The database is allowed to use greek characters and I can check that, because when I use a "select" query, the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.