Visual C++ :: Transferring Unicode String From One Program To Another With UTF-8 Encoding?
Mar 20, 2015
I'm transferring a unicode string from one program to another with UTF-8 encoding.
Program that is sending:
Code:
// Convert path
std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_converter;
CString arg = L" /PATH="" + CString(utf8_converter.to_bytes(path).c_str()) + L""";
Program that is retrieving:
Code:
// Restore original path
std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_converter;
std::wstring path = utf8_converter.from_bytes( argument );
Everything has worked fine, until running on a Japanese edition of Windows.
The "byte path" then looks something like "C:¥Users¥d✝?✝a ,?¥AppData¥Local¥Temp¥file.txt".
"from_bytes()" will throw an std::range_error exception "bad conversion".
The program works fine when working with Japenese writing inside paths in the English edition.
What could be causing the "bad conversion"?
View 10 Replies
ADVERTISEMENT
Aug 29, 2013
I have some code that was compiled without Unicode turned on in the Preprocessor Definitions. I need to access an API that had Unicode turned on in the Preprocessor Definitions (I believe that it is on by default for DLL's) .
I need to call a function in the DLL that requires a structure like:
struct READERINFO {
TCHAR serial[32];
TCHAR altSerial[32];
TCHAR name[32];
TCHAR fccId[48];
TCHAR hwVersion[16];
int swVerMajor;
int swVerMinor;
char devBuild;
};
It returns some information in the structure some of it is Unicode based however the program that is calling it is not Unicode. The preprocessors are not turned on because if they were there would be a lot of things to change in this code. The code is old code that I inherited and now I must interface to some new devices.
I declare my structure as :
READERINFO info; Then I call the function in the DLL which looks like: ApiGetReaderInfo(hAPI, &info, sizeof(into));
Which is defined as:
ApiGetReaderInfo(HANDLE hApi,
Struct READERINFO * ri,
DWORD riSize);
Parameters:
hApiHandle to valid Api object instance
riPointer to the READERINFO structure.
riSizeSize of ri structure in bytes. Usually: sizeof(struct READERINFO).
When I call it from my program that does not have UNICODE defined in the Pre-Processors I get :
Characters like : ÌÌÌÌÌ in the TCHAR fields and invalid numbers in the integer fields.
int ModuleVersion(HANDLE hApi) {
struct READERINFO info;
ApiGetReaderInfo(hApi, &info, sizeof(info));
[Code] ....
When I call it from my program that has some sample code just for this and has the UNICODE defined in the Preprocessors it works just fine. how I can call this from my old code and get the correct information. I have already tried to do the follow without success:
int ModuleVersion(HANDLE hApi) {
#define UNICODE
struct READERINFO info;
#undef UNICODE
ApiGetReaderInfo(hApi, &info, sizeof(info));
[Code] .....
View 4 Replies
View Related
Jun 15, 2013
I am using Visual Studio 2008. I just wonder if there are any library function in Windows SDK or MFC, or from third-parties, that can convert a UTF-8 string into Windows Unicode string(used in CString object).
Can MultiByteToWideChar or ATL String conversion macro like A2W to the conversion?
View 1 Replies
View Related
Feb 11, 2015
I've got an application here which connects over the internet to a webserver and sends some json strings. This is all working already.
Now I want to encode one string via mcrypt (because it seemed the easiest library of all) AES and send it over to the other server where it should get decrypted again and checked for validity.
I'll be using this sample code as "starting base". i've found it on the internet:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
* MCrypt API available online:
[Code] ....
The code works as it is, it encodes my string into a ciphered text and displays the text via the display function to stdout.
From previous projects I know I usually used Base64 for transporting strings via json, but in this example the string is encoded into "%d" - so decimals.. It works too, and I dont care if I send a base64 encoded string or these decimals but how would I calculate back the %d encoded string ? So how would a "undisplay()" class look alike ?
Or maybe there is an easier way to transport the string and re-decode it ?
I'd expect something like:
base64string = base64encode(ciphertext);
...
send base64string to host2
...
at host2:
ciphertext = base64decode(base64string)
...
and then mcrypt_decode that ciphertext...
View 1 Replies
View Related
Oct 31, 2014
I am writing a porgram which includes encoding and decoding a message.Now I am doing the encoding part.
The goal is to encode a message using similar approach as Caesar Cipher. But instead of alphabets, I am going to use the entire ASCII code of total 128 codes to be the base.
And it is not a simple shifting, it is a rotation. This means if you want to shift 4 units from char <DEL>, it will come back to the first code in ASCII Code which is at dec 0 char <NUL> and starts the shifting again. It won't jump if the limit of ASCII Code is reached.
Here we've got 7 different malls' names and I am going to encode them with a shift n. I think n is free to set, so here I just set it as 5. This is also called the key.
I have written something and I think it should work, but after all it doesn't. And I don't get what is wrong.
Here is my program:
#include <iostream>
using namespace std;
const int NUMBER_OF_MALLS = 7;
const int MALL_NAME_LENGTH = 13;
const int NAME_SIZE = MALL_NAME_LENGTH + 1;
void encode(int key, char plain[], int length, char encoded[]) {
for (int i = 0; i < MALL_NAME_LENGTH; i++)
[code].....
Note that I am not going to use other libraries, just <iostream>.
View 13 Replies
View Related
Jan 6, 2013
I'm having some problems in receiving fileNames from Server to Client(C++) in Mac OS X. I send a serialized object , which has a char pointer with the fileName or sometimes a string object, when i receive it in the client, it seems to be having %F6 or %E9 ,etc . This issue don't arise in Windows OS though, even thought it's the same code. Is there anyway decoding these '%' characters back to their original form in Mac OS & Linux ..?
Fex characters i got into problems with : ǡ ȅ ȉ
It would be difficult to change the code in server, so if there's a way decoding the characters back to its original form, it would be easier.I'm using Boost Library for Serialization and i'm just looking for ways to decode %F6 back to ȅ in C++, like if some library is available ..?
View 1 Replies
View Related
Dec 22, 2013
I just wonder whether 0xFFFF is a valid Unicode character.
When I using the following code:
CStringW strTempW;
CString strTemp1;
INT_PTR nLen;
strTempW.Format(L"%c", 0xFFFF);
nLen = strTempW.GetLength();
strTemp1 += strTempW;
nLen = strTemp1.GetLength();
After executing the first codeline strTempW.Format(L"%c", 0xFFFF), I will get strTempW of length 1, but cannot see it first character in Visual Studio watch window.
After executing the codelilne strTemp1 += strTempW, I will get strTemp1 of length 0.
Whether 0xFFFF is taken as a valid Unicode or not?
View 1 Replies
View Related
Jan 20, 2014
In my project , we need to create an Array of Unicode Strings . The Array will contain 5000 Strings.
I need to write those strings to a text file which can be opened or edited with NotePad.
Normal _tfopen and fwrite are not able to create notepad compatible .txt file .. I mean the file I created is not readable with Notepad though file open mode is "w+t"
How can I save my unicode strings to a text file
View 6 Replies
View Related
Feb 18, 2014
I am using VC++ 2005, Multibyte char set. I am getting hex values from stream and i have to show it in respective language.
in below example
char mt[] = { 0x0C, 0x85, 0x0C, 0x86, 0x0C, 0x87,0x0C, 0x88,0x0C, 0x89, 0x0C, 0x8A,0x0C, 0x8B,
0x0c, 0x85 , 0x0c , 0x86 , 0x0c , 0x87 , 0x0c , 0x88 , 0x0c , 0x89 , 0x0c , 0x8a , 0x0c , 0x8b , 0x00 , 0x20,
0x0c, 0x8e , 0x0c , 0x8f , 0x0c , 0x90 , 0x0c , 0x92 , 0x0c , 0x93 , 0x0c , 0x94 , 0x00 , 0x20 , 0x0c , 0x95,
0x0c, 0x96 , 0x0c , 0x97 , 0x0c , 0x98 , 0x0c , 0x99 , 0x00 , 0x20 , 0x0c , 0x9a , 0x0c , 0x9b , 0x0c , 0x9c,
0x0c, 0x9d , 0x0c , 0x9e , 0x00 , 0x20 , 0x0c , 0x9f , 0x0c , 0xa0 , 0x0c , 0xa1 , 0x0c , 0xa2 , 0x0c , 0xa3,
0x00, 0x20 , 0x0c , 0xa4 , 0x0c , 0xa5 , 0x0c , 0xa6 , 0x0c , 0xa7 , 0x0c , 0xa8 , 0x00 , 0x20 , 0x0c , 0xaa,
0x0c, 0xab , 0x0c , 0xac , 0x0c , 0xad , 0x0c , 0xae , 0x00 , 0x20 , 0x0c , 0xaf , 0x0c , 0xb0 , 0x0c , 0xb2,
0x0c, 0xb5 , 0x0c , 0xb6};
How can i convert the mt string to below string?
"ಅಆಇಈಉಊಋ ಎಏಐಒಓಔ ಕಖಗಘಙ ಚಛಜಝಞ ಟಠಡಢಣ ತಥದಧನ ಪಫಬಭಮ ಯರಲವಶ"
To cross check the mt array, If you place the above string to the below link you get mt array [URL] ....
Cant i do it in "Multibyte char set" settings? or should i use Unicode settings.
View 3 Replies
View Related
Nov 20, 2012
Working in Win32 console app (VS 2010) I have been trying to convert several Unicode (UTF-16) C++ functions to Ansi C (UTF-8). The test app includes two tokenizer classes, each of which work perfectly well in their respective environments, CTokA and CTokW (UTF-8 and UTF-16).
A problem arises when I attempt to run the UTF-8 functions when the Character Set properties is set to 'Use Unicode Character Set' in that std::string manipulations do not perform as expected, e.g.,
printf("start
");
gets reproduced as
printf("start
");══════════ ²²²²
Attempting to null terminate the string where it is supposed to end simply results in a space in that position and the garbage end persists, e.g.,
printf("sta t
");══════════ ²²²²
Code:
sline[11] = 0x0000;
If I attempt to change the Character Set property to 'Use Multibyte Character Set' or 'Not Set', the app will not compile and hundreds of errors occur. Of course, I can eliminate all of the UTF-16 code, but it strikes me that it should not be necessary. Perhaps if M$ made everything UTF-16 without all of the necessary decorations like 'L' and '_T(', life would be much simpler. Unfortunately, I have a very extensive UTF-8 app under 10 years of development that works quite well, but my UTF-16 (Unicode) conversion doesnt work as well because of the mixing of pointers (I think), so I have had to revert much of the code back to UTF-8. (All of which has nothing to do with my question but is simply psychotheraputic for me to ventilate on.)
My question is this: Can UTF-8 and UTF-16 code coexist in a single Win32 console app?
View 6 Replies
View Related
Feb 11, 2013
I have some problem with the ssize_t sendfile function.
ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
The error:
Lesson_4_1A_Home_work.c:84:24: error: expected declaration specifiers or ‘...’ before string constant
Lesson_4_1A_Home_work.c:84:37: error: expected declaration specifiers or ‘...’ before string constant
Lesson_4_1A_Home_work.c:84:63: error: expected declaration specifiers or ‘...’ before ‘strlen’
Code:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <sys/sendfile.h>
#include <sys/types.h>
[Code]....
View 3 Replies
View Related
May 14, 2014
In my classification function, the char isn't transferring to main. Am i suppose to make it a string. Or perhaps something else i messed up on
#include <iostream>
using namespace std;
double validity(double, double, double);
double classification(double, double, double, char);
[Code]....
View 10 Replies
View Related
Jun 13, 2014
I am trying to transfer information of Variables. How to get this to work and everything I follow shows that this SHOULD work but some reason does NOT work... I
What I CAN get to work is if I put frm.show(); on one specific section that ONE section will show up... so I tried putting all of the variables at the end button to get them to show up with the one Frm.show and it still only does the very last one and the rest are just blank I dont really understand as to why.
Also if I put a FRM.show at each step it will just keep creating a new instance of form 2 each with a different line that is changed.
Form1 code
public Form1() {
InitializeComponent();
} public void Enter_Click(object sender, EventArgs e) {
Form2 frm = new Form2();
Employee FirstName = new Employee();
[Code] .....
Form2 Code
public partial class Form2 : Form {
public Form1 frm1;
public Form2() {
InitializeComponent();
}
View 8 Replies
View Related
Feb 22, 2015
I can not do transferring data to textboxes from database.
="c#">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApplication1{
[code]....
I got the error this line:
read = cmd.ExecuteReader();
View 3 Replies
View Related
Feb 1, 2014
In the function *expandArrayList and *trimArrayList I need to allocate either more memory or less memory to the given array. Right now I am using malloc on a new array and then transferring the elements of the original array to the new array, freeing the original array, and then reassigning it to the new array so it's size and capacity are either bigger or smaller than the original. I feel like there has to be a simpler way to do this with either realloc or calloc, but I cant find sufficient information on either online. Would I be able to use either to make this easier and the code cleaner?
Also, these are character arrays that contain several character arrays inside them, so I was wondering what the best way to transfer the contents of one array to the other would be. I have gone between
Code:
//example
for (i=0; i<length; i++){
newarray[i] = oldarray[i];
}
and
Code: for (i=0; i<length; i++){
strcpy(newarray[i], oldarray[i]);
}
but I'm not sure which one (if either) should work.
The 'ArrayList.h' file that is included contains the structure ArrayList, as well as the function prototypes for the functions listed below.
Here is the structure in ArrayList.h:
Code:
#define DEFAULT_INIT_LEN 10
typedef struct ArrayList {
// We will store an array of strings (i.e., an array of char arrays)
char **array;
[Code] ....
Here is my code:
Code:
//included libraries
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ArrayList.h"
//Create arraylist
[Code]....
View 3 Replies
View Related
Mar 10, 2013
I'm trying to put file data into members of a class. Remember to type in the file name you want to open. Cool feature right? I just had Dbase.txt so I chose that.
Fixed stuff in the .txt. Now I need to figure out why it only does 1 set and then ends.
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
class INFO {
[Code] .....
Dbase.txt:
Bob
Guy
Programmer
M
9999.99
40
------------------
Little
Guy
Little Brother
M
0.0
3
------------------
View 14 Replies
View Related
Dec 12, 2013
How to write in DOS encoding using class FILE ?
View 5 Replies
View Related
Apr 14, 2015
I am writing a program to zip and unzip files using Huffman Encoding. I have successfully Built my Huffman Tree but I am unable to traverse through it to retrieve code the code for each character in sample files using the GetCode() method.
Here is my zip.cpp file:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cctype>
#include "huffman.h"
using namespace std;
void CountLetters(int frequency[]);
int main(int argc, char *argv[]) {
[Code] ....
Specifically I am having trouble with the following segment in zip.cpp where I want to go through my built tree and print out each character and it's associated ascii value using the GetCode() method in huffman.cpp
cout << " Here are the codes: "<< endl;
for(char ch = char(0); ch <= char(255); ch++)
//for(int i= 1; i < 256; i++ )
{ //int x = (char) i;
if(mytree.inTree('*'))
[Code] ....
View 8 Replies
View Related
Dec 4, 2014
I'm new to C++ and involving encoding and decoding text from text files. When I enter a file in the program just stalls.
#include <iostream >
#include <iomanip>
#include <string>
#include <cstring>
#include <fstream>
using namespace std;
char getmenuselection (char m);
{Code] .....
View 3 Replies
View Related
Apr 23, 2012
I'm trying to parse some binary data in the form of an array of bytes and I've come across something that is confusing me related to the representation of data as chars versus ints. It's a bit of a long story, but the byte array contains a mixture of character data and integer data which I' having trouble unravelling. The problem seems to arise from the issue below:
Code:
const char * ch_arr = "abcd";
const unsigned int * ui_arr = (const unsigned int*)ch_arr;
cout << ui_arr[0] << endl;
unsigned int ui = 'a';
ui = ui << 8;
ui |= 'b';
ui = ui << 8;
ui |= 'c';
ui = ui << 8;
ui |= 'd';
cout << ui << endl;
I expected both the output lines to be the same, since they contain the same bytes (I believe), but I get:
Code:
1684234849
1633837924
View 4 Replies
View Related
Jun 25, 2014
Basically, I am inserting data from an ODBC connection into a PostgreSql database using the COPY query, but the COPY query stops and returns this error...
Quote
ERROR: invalid byte sequence for encoding "UTF8": 0x92
CONTEXT: COPY [TableName], line 1: "189572|1-00-1202|1-|00-|1202||AP||1...
STATEMENT: COPY [TableName] FROM STDIN (DELIMITER '|', NULL '')
View 4 Replies
View Related
Feb 7, 2012
I have a char *pch that points to an integer digit 1 or 2 or ... 9. To get the character that's 1 less, instead of converting to int, minus 1, then converting back to char, I tried (*pch -1) and that seemed to work. I suppose that's because the particular character encoding on my system is such that the digits are encoded in the same order and spacing as the integers they represent. So the question is does this "convenience" feature hold true for all character encoding systems?
View 10 Replies
View Related
Jan 25, 2015
I'm trying to have a button marked by the sqrt sign, '√'.
I wrote below code and typed that sign by holding down "alt" and typing 251 using numpad. But result is the question mark instead of sqrt mark!
My machine is Windows 7 x86 and IDE is visual studio 2012.
#include <GUI.h>
using namespace Graph_lib;
//---------------------------------
class Test : public Window {
public:
Test(Point, int, int, const string&);
[Code] .....
View 3 Replies
View Related
Aug 11, 2014
You told me that it's better to use UNICODE all the time.
What if the Win32 Api function doesn't have a UNICODE version.
For example CryptProtectData() takes a BYTE (DATA_BLOB *) which is an unsigned char?
[Code] ......
View 7 Replies
View Related
Feb 5, 2013
I want to print out unicode characters. But I want to do this using the key ids. Example:
int main()
{
std::cout << ('124'); //I would like this to output '|'
}
View 2 Replies
View Related
Feb 10, 2014
I'm writing a school assignment that writes/reads user input into and out of a binary file.
I've gotten the write part to work, but now I need to be able to read that file back in and display it as a string.
I think I should be using fread() and read my file into an array of int's right? But when I try printing out that array I get a whole bunch of numbers that don't match the hex code in my file.
How do I read in a binary file and print it out as a string?
View 4 Replies
View Related