Ich möchte eine persische (Farsi) Zeichenfolge mit Socket von Python zu einem anderen Python in Himbeere senden. Ich sehe ein Fragezeichen im Terminal und wenn ich das in eine TXT-Datei schreibe, sehe ich ÇÔÔÇÑ Zeichen (für ein Wort). Servercode:Persische Zeichenfolge mit Socket von Python zu Python senden
# -*- coding: cp1256 -*-
import sys
import time
import os
import SocketServer
import thread
import os.path
import webbrowser
import RPi.GPIO as GPIO
class MyTCPHandler(SocketServer.BaseRequestHandler):
"""
The reques
t handler class for our server.
It is instantiated once per connection to the server, and must
override the handle() method to implement communication to the
client.
"""
def handle(self):
try:
# self.request is the TCP socket connected to the client
self.data = self.request.recv(1024).strip()
print "{} wrote:".format(self.client_address[0])
text2=self.data
print type(text2)
text_file = open("Output.txt", "w")
text_file.write(text2)
text_file.close()
completeURL="http://10.7.6.172/GanjSearch.aspx?q=/%s/" %text2
print completeURL
webbrowser.open(completeURL)
except Exception, e:
print type(e)
print e
if __name__ == "__main__":
HOST, PORT = "192.168.1.55", 9998
# Create the server, binding to localhost on port 9999
try:
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
server.serve_forever()
except Exception, e:
print type(e)
print e
Client-Code:
a="persian-word"
socket.sendall(a)
was muss ich tun?
Sie sollten Ihren Code veröffentlichen, damit wir sehen, was Sie tun. – SergiyKolesnikov
Sie kodieren Ihr Farsi-Zeichen in seiner UTF16-Darstellung, senden es dann über den Socket und dekodieren es erneut zum Farsi-Zeichen. Wenn Sie zum Beispiel die UTF16-Dezimalstelle des Zeichens haben wollen, dekodieren Sie es mit ** int (repr (data.decode ('utf-16')) [4: 8], 16) ** wenn Ihre "Daten" die Farsi sind Zeichen –
@ Dr.JohnJamesCobra, wenn ich String nicht int wollen, muss ich String schreiben (repr (data..decode ('utf-16')) [4: 8], 16) ??? und wie muss ich codieren? – narges